<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Publishing DTD v1.0 20120330//EN" "JATS-journalpublishing1.dtd">
<article xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink" article-type="research-article">
<front>
<journal-meta>
<journal-id journal-id-type="publisher-id">INFORMATICA</journal-id>
<journal-title-group><journal-title>Informatica</journal-title></journal-title-group>
<issn pub-type="epub">1822-8844</issn><issn pub-type="ppub">0868-4952</issn><issn-l>0868-4952</issn-l>
<publisher>
<publisher-name>Vilnius University</publisher-name>
</publisher>
</journal-meta>
<article-meta>
<article-id pub-id-type="publisher-id">INFOR635</article-id>
<article-id pub-id-type="doi">10.15388/26-INFOR635</article-id>
<article-categories><subj-group subj-group-type="heading">
<subject>Research Article</subject></subj-group></article-categories>
<title-group>
<article-title>Zebrafish Optimization Algorithm for Global Optimization Problems</article-title>
</title-group>
<contrib-group>
<contrib contrib-type="author">
<contrib-id contrib-id-type="orcid">https://orcid.org/0009-0003-0694-2947</contrib-id>
<name><surname>Suruthi</surname><given-names>Manickavasagam</given-names></name><xref ref-type="aff" rid="j_infor635_aff_001"/><bio>
<p><bold>M. Suruthi</bold> is a research scholar in the School of Computer Science and Engineering at Vellore Institute of Technology, Chennai, India. Her research spans towards mathematical optimization, engineering optimization, operations research, machine learning, AI-based optimization and computational methods, reflecting both theoretical rigour and practical applicability. She works across classical linear and nonlinear programming to modern metaheuristic and swarm intelligence techniques, addressing complex real-world challenges through innovative algorithmic approaches. Her contributions to nature inspired optimization bridge traditional mathematical methods with emerging intelligent computing paradigms. As an active and prolific researcher, she continues to advance multi-domain optimization research within the broader academic community.</p></bio>
</contrib>
<contrib contrib-type="author">
<contrib-id contrib-id-type="orcid">https://orcid.org/0000-0002-8880-4673</contrib-id>
<name><surname>Ganesh</surname><given-names>Narayanan</given-names></name><email xlink:href="ganesh.narayanan@vit.ac.in">ganesh.narayanan@vit.ac.in</email><xref ref-type="aff" rid="j_infor635_aff_001"/><xref ref-type="fn" rid="cor1">∗</xref><bio>
<p><bold>N. Ganesh</bold> brings a wealth of experience to his role as a professor in the School of Computer Science and Engineering, Vellore Institute of Technology, Chennai, India. He is recognized as one of the Top 2% Scientists by Elsevier and Stanford University, USA. With a career spanning more than two decades in teaching, training and research, he has established himself as an authority in this field. His research interests are diverse and forward thinking, encompassing software engineering, agile software development, prediction and optimization techniques, deep learning, image processing and data analytics.</p></bio>
</contrib>
<aff id="j_infor635_aff_001"><institution>School of Computer Science and Engineering, Vellore Institute of Technology</institution>, Chennai 600127, Tamil Nadu, <country>India</country></aff>
</contrib-group>
<author-notes>
<corresp id="cor1"><label>∗</label>Correponding author.</corresp>
</author-notes>
<pub-date pub-type="ppub"><year>2026</year></pub-date><pub-date pub-type="epub"><day>9</day><month>7</month><year>2026</year></pub-date><volume content-type="ahead-of-print">0</volume><issue>0</issue><fpage>1</fpage><lpage>40</lpage><history><date date-type="received"><month>1</month><year>2026</year></date><date date-type="accepted"><month>6</month><year>2026</year></date></history>
<permissions><copyright-statement>© 2026 Vilnius University</copyright-statement><copyright-year>2026</copyright-year>
<license license-type="open-access" xlink:href="http://creativecommons.org/licenses/by/4.0/">
<license-p>Open access article under the <ext-link ext-link-type="uri" xlink:href="http://creativecommons.org/licenses/by/4.0/">CC BY</ext-link> license.</license-p></license></permissions>
<abstract>
<p>A new population-based metaheuristic called Zebrafish Optimization Algorithm (ZFO) is proposed to find the global optimum solution using foraging behaviour of zebrafish larvae (Danio rerio). In ZFO, an exploration and exploitation trade-off is realized by simulation of exploratory dispersion, collaborative shoaling and directional searching. The movement strategy incorporates a stagnation-avoiding reinitialization mechanism, ensuring that diversity is maintained and premature convergence is avoided. To demonstrate the efficiency of ZFO, 23 benchmark functions including unimodal, multimodal and fixed dimension multimodal functions are tested and their optimal solutions are searched. Results obtained by ZFO are compared with existing metaheuristic algorithms, namely Cuttlefish Optimization, Jellyfish Search, Pufferfish Optimizer and Krill Herd algorithm. The Friedman rank test and Wilcoxon signed-rank test show that ZFO yields better-quality solutions than the compared algorithms in terms of convergence speed and robustness. The novel characteristic of ZFO is that it combines biologically inspired zebrafish dynamics and adaptive diversification strategy to enhance the capability of global search.</p>
</abstract>
<kwd-group>
<label>Key words</label>
<kwd>Zebrafish Optimization Algorithm</kwd>
<kwd>nature inspired metaheuristics</kwd>
<kwd>performance evaluation</kwd>
<kwd>global optimization</kwd>
<kwd>benchmark functions</kwd>
</kwd-group>
</article-meta>
</front>
<body>
<sec id="j_infor635_s_001">
<label>1</label>
<title>Introduction</title>
<p>Optimization is an integral part of any computational framework for engineering and sciences and it is essentially defined as the process of finding an optimal solution within a set of constraints for maximization or minimization of one or more objective functions (Osaba <italic>et al.</italic>, <xref ref-type="bibr" rid="j_infor635_ref_021">2021</xref>). It finds applications in diverse fields such as signal and image processing, mechanical designing, manufacturing scheduling, chemical engineering and automatic control systems, etc. (Abualigah <italic>et al.</italic>, <xref ref-type="bibr" rid="j_infor635_ref_002">2022</xref>). Real-world optimization problems possess the characteristics of high dimensionality, multimodal, non-linear and lack of gradient information so that the traditional deterministic methods cannot effectively solve these problems in practice (Pan <italic>et al.</italic>, <xref ref-type="bibr" rid="j_infor635_ref_022">2023</xref>). These methods may become trapped in local optima, are based on convex assumptions and cannot be effectively and efficiently computed for NP-Hard problems classes (Zhan <italic>et al.</italic>, <xref ref-type="bibr" rid="j_infor635_ref_034">2022</xref>; Gad, <xref ref-type="bibr" rid="j_infor635_ref_007">2022</xref>).</p>
<p>Recently, metaheuristic algorithms have established themselves as a versatile and powerful paradigm that provides non-derivative, population-based search methods, approximating satisfactory solutions without explicitly relying on mathematical structure information of the problem (Beheshti and Shamsuddin, <xref ref-type="bibr" rid="j_infor635_ref_004">2013</xref>). There are two classes of metaheuristics; the single solution based methods (S-metaheuristics), where an individual solution is successively refined with local search and the population based methods (P-metaheuristics), which use information collected from the population of candidate solutions (Talbi, <xref ref-type="bibr" rid="j_infor635_ref_031">2009</xref>).</p>
<p>Metaheuristic algorithms are designed to solve problems with single solution and using multiple iterations to search for new improved solutions using local searches. S-metaheuristics include simulated annealing (SA) (Kirkpatrick <italic>et al.</italic>, <xref ref-type="bibr" rid="j_infor635_ref_016">1983</xref>), Tabu search (TS) (Glover and Laguna, <xref ref-type="bibr" rid="j_infor635_ref_009">1997</xref>), Hill climbing search (HC) (Sullivan and Jacobson, <xref ref-type="bibr" rid="j_infor635_ref_028">2001</xref>), Iterated local search (ILS) (Lourenço <italic>et al.</italic>, <xref ref-type="bibr" rid="j_infor635_ref_017">2003</xref>) and Variable neighbourhood search (VNS) (Mladenović and Hansen, <xref ref-type="bibr" rid="j_infor635_ref_018">1997</xref>). These types of metaheuristic algorithms have been shown to perform quite well in terms of computational efficiency with fewer function evaluations and their localized search characteristics can also lead to problems with early convergence and local optima while solving very complicated multimodal or large-scale optimization problems.</p>
<p>In population-based approach, EAs mimic Darwinian principles of natural selection and genetic reproduction. In GA (Holland, <xref ref-type="bibr" rid="j_infor635_ref_011">1992</xref>) and Differential Evolution (DE) (Price <italic>et al.</italic>, <xref ref-type="bibr" rid="j_infor635_ref_023">2006</xref>), next-generation solutions are produced by various operators such as recombination, mutation and selection. Derivative versions such as BSA (Civicioglu, <xref ref-type="bibr" rid="j_infor635_ref_006">2013</xref>) and Jaya Algorithm (JA) (Rao, <xref ref-type="bibr" rid="j_infor635_ref_025">2016</xref>) have been developed to provide an equivalent level of performance.</p>
<p>Swarm Intelligence mimics the spontaneous emergent collective behaviour of biological communities. In Particle Swarm Optimization (PSO) (Kennedy and Eberhart, <xref ref-type="bibr" rid="j_infor635_ref_015">1995</xref>), inspired by bird flocking, particles search for optimum based on their personal best location and global best location. While PSO has quick convergence, it might suffer from velocity explosion, trapping in local minima and premature convergence of the population near global optimum. Grey Wolf Optimizer (GWO) (Mirjalili <italic>et al.</italic>, <xref ref-type="bibr" rid="j_infor635_ref_019">2014</xref>) uses a rigid dominance hierarchy (alpha, beta, delta and omega) for leading cooperative hunting in a pack, which is only optimal on unimodal functions, whereas the strong dominance restriction can negatively affect adaptivity on high-dimensional multimodal problems. Whale Optimization Algorithm (WOA) (Mirjalili and Lewis, <xref ref-type="bibr" rid="j_infor635_ref_020">2016</xref>) imitates the bubbling and circling motion of humpback whales in hunting for prey. WOA has good exploitation, but is trapped in local optimum more often due to its strong exploitation property. Phasmatodea Population Evolution (PPE) (Song <italic>et al.</italic>, <xref ref-type="bibr" rid="j_infor635_ref_027">2022</xref>) is based on the behaviour of stick insect for population diversity and its population movement strategy seems less systematic than fairness-driven movement strategy of ZFO.</p>
<p>Physics-based metaheuristics include the Gravitational Search Algorithm (GSA) (Rashedi <italic>et al.</italic>, <xref ref-type="bibr" rid="j_infor635_ref_026">2009</xref>), which was inspired by Newton’s law of gravitation acting on mass-weighted agents. Arithmetic Optimization Algorithm (AOA) (Abualigah <italic>et al.</italic>, <xref ref-type="bibr" rid="j_infor635_ref_001">2021</xref>) uses the distribution law of the arithmetic operation to specify the rules. The Fick’s Law Optimization Algorithm (Hashim <italic>et al.</italic>, <xref ref-type="bibr" rid="j_infor635_ref_010">2023</xref>) was inspired by molecular diffusion. Although they have analytically based update rules, they do not exhibit the adaptive behavioural flexibility that biological agents demonstrate during foraging the key motivation for ZFO.</p>
<p>Human-based metaheuristics can be seen as socio-cognitive events abstract to optimization operators. For example, Teaching-Learning-Based Optimization (TLBO) (Rao <italic>et al.</italic>, <xref ref-type="bibr" rid="j_infor635_ref_024">2011</xref>) abstracts the learning between a teacher and pupils into operators. Supply-Demand-Based Optimization (SDO) (Zhao <italic>et al.</italic>, <xref ref-type="bibr" rid="j_infor635_ref_035">2019</xref>) relies on economic theory for modelling moving candidates through the use of market principles. These algorithms are fast but not composed of distinct behavioural stages nor is the interaction and spatial coordination governed by processes that ZFO adopted from neurobiology of zebrafish.</p>
<p>Aquatic organism-inspired algorithms comprise a rapidly expanding sub-family of Swarm Intelligence. The Cuttlefish Optimization Algorithm (CFO) (Kalpanarani and Hannah Grace, <xref ref-type="bibr" rid="j_infor635_ref_014">2025</xref>) aims to simulate the chameleon-like ability of cuttlefish to vary their reflection and visibility using chromatophores. CFO uses skin-pattern mimicry as its search operator, restricting its capacity for the type of group foraging-guided search, which drives the exploration of ZFO. The Jellyfish Search Optimizer (JSO) (Chou and Truong, <xref ref-type="bibr" rid="j_infor635_ref_005">2021</xref>) mimics passive ocean-current induced motion and the interaction of the swarm with the food near a patch. However, as jellyfish possess no active sensory-guided locomotion, their motion update is based upon current driven stochastic perturbation rather than the ZFO form of actively track prey directed locomotion. The Pufferfish Optimization Algorithm (POA) (Al-Baik <italic>et al.</italic>, <xref ref-type="bibr" rid="j_infor635_ref_003">2024</xref>) focuses upon both pufferfish puffing defensive action and on the preservation of population diversity. Rather than ZFO’s coordination strategies in a group hunt, the preservation of diversity in POA is through avoidance of predation; group coordinated hunting does not play any part in this search strategy and its adaptation towards and away from the ZFO hunting state does not arise. The Krill Herd Optimizer (KHO) (Gandomi and Alavi, <xref ref-type="bibr" rid="j_infor635_ref_008">2012</xref>) simulates movement in a herd of Antarctic krill driven by three movement forms, neighbour-induced motion, foraging motion and physical diffusion. The model of krill foraging is again based on diffusively random walks rather than ZFO’s fairness weighted directional movement toward prey.</p>
<p>In the recent years, metaheuristics have also been explored for solving global optimization problems over a wide range of applications. Firefly Algorithm and Ant Colony Optimization was proposed as hybrid metaheuristics, such as Colliding Bodies Optimization, for estimating the GMDH parameters used to predict software testability (Wu, <xref ref-type="bibr" rid="j_infor635_ref_033">2026</xref>). Ant colony optimization algorithm is adapted for supply chain network design where the global search ability of the ant colony optimization is utilized to minimize the total costs and increase the service level (Huang, <xref ref-type="bibr" rid="j_infor635_ref_012">2025a</xref>). A Hybrid particle swarm optimization has been presented based on Q-learning framework for the problems of airport parking space assignment and scheduling (Huang, <xref ref-type="bibr" rid="j_infor635_ref_013">2025b</xref>). A multi-objective metaheuristics algorithm is introduced to implement energy efficient virtual machine placement in the cloud data centres (Vijaya and Srinivasan, <xref ref-type="bibr" rid="j_infor635_ref_032">2024</xref>).</p>
<p>Despite substantial advances in metaheuristic optimization, the problem of determining an intelligent, adaptive trade-off between the global search and local exploitation of the metaheuristics without requiring excessive tuning has not been sufficiently answered. The No Free Lunch (NFL) theorem theoretically demonstrates that one algorithm is not better than all other algorithms in terms of any class of optimization problem, thus motivating the development of novel algorithms for optimization problems of specific structural kinds. Specifically, biologically validated multi-phase behaviours inspired by nature remain largely underexplored, in particular for continuous multimodal test functions, which often expose premature convergence and stagnation problems of standard population-based algorithms. Nevertheless, most studies concentrate on hybrid algorithm and parameter setting strategy with few concerns about bio-inspiration adaptive mechanism and intrinsic mechanism to escape local optima. This work tackles the issues mentioned above by presenting the Zebrafish Optimization Algorithm (ZFO), a novel population-based approach with autonomous interaction, fairness-weighted exploration and adaptive stagnation recovery strategy to achieve a powerful global search performance.</p>
<p>The present paper addresses this gap by introducing the Zebrafish Optimization Algorithm (ZFO), a novel population-based metaheuristic based on the neuro-collective behaviours during the foraging activities of larval zebrafish. Contrary to organisms inspiring the following other biological-based population algorithms PSO (birds), GWO (wolves), WOA (whales), CFO (cuttlefish) JSO (jellyfish), POA (pufferfish) and KHO (krill), zebrafish exhibits sophisticated, sensory-driven collective predatory behaviour which is characterized by clear-cut phase transitions between three biologically validated foraging behaviours: scattering-based movement toward areas of high information richness (dispersive search), fish schools that follow a predator and rapidly converge to corner prey (shoaling and directed prey-targeting) and group-hunting at a very high speed. ZFO embeds these dynamic, phased transitions as phased position-updating rules and additionally incorporates a fairness-governed update operator designed to give more aggressive search emphasis to low-fitness members and a detection mechanism that reinitializes a portion of the population to prevent convergence to optima from becoming stagnated. The following are the main contributions: 
<list>
<list-item id="j_infor635_li_001">
<label>I.</label>
<p>The novel three-phase zebrafish-inspired optimization framework based on the mathematical formulation of three observed fish school group foraging activities: exploration, shoaling and hunting behaviours.</p>
</list-item>
<list-item id="j_infor635_li_002">
<label>II.</label>
<p>An adaptive updating mechanism using fairness weight to dynamically balance exploration and exploitation while maintaining population diversity is proposed.</p>
</list-item>
<list-item id="j_infor635_li_003">
<label>III.</label>
<p>The incorporation of stagnation-aware detection and reinitialization mechanism to avoid premature convergence and robust behaviour for complicated search space.</p>
</list-item>
<list-item id="j_infor635_li_004">
<label>IV.</label>
<p>A computational framework and computational complexity are proposed.</p>
</list-item>
<list-item id="j_infor635_li_005">
<label>V.</label>
<p>Extensive simulation studies using 23 benchmark functions are implemented. Friedman rank and Wilcoxon signed-rank statistical test are carried out and compared to other four new aquatic-organism-inspired optimizers, CFO, JSO, POA and KHO.</p>
</list-item>
</list>
</p>
</sec>
<sec id="j_infor635_s_002">
<label>2</label>
<title>Zebrafish Optimization (ZFO)</title>
<p>The proposed Zebrafish Optimization (ZFO) and how it was inspired by juvenile zebrafish. First, the biological characteristics that led to the design of ZFO, including the identification and analysis of some key foraging behaviours exhibited by zebrafish. These factors provide the basis for both the behavioural modelling and mathematical formulation described later in subsequent section.</p>
<sec id="j_infor635_s_003">
<label>2.1</label>
<title>Inspiration</title>
<p>The investigation of biological systems reveals that many groups of animals can create very effective methods of problem-solving using group intelligence. Aquatic species such as zebrafish (<italic>Danio rerio</italic>) demonstrate coordinated behaviours to develop effective foraging strategies for foraging of food through the development of cooperative behaviours. Despite the comparatively simple brain structure, larval zebrafish have evolved into extremely sophisticated hunt-and-catch mechanisms with regards to their prey. Their foraging mechanism is random, cooperative and specifically targets certain types of food.</p>
<p>Larval zebrafish are small, freshwater organisms that are being used extensively in the study of behavioural biology and neuroscience because they have transparent bodies and grow quickly, plus have thoroughly characterized sensorimotor responses. Larval zebrafish are typically found in shallow freshwater habitats such as shallow ponds and streams. Although food resources may be concentrated within a water body, their availability varies across locations and time. To sustain themselves in this type of environment, larval zebrafish must employ an efficient foraging strategy, which utilizes sensory perception, motion control and the ability to interact with others.</p>
<p>Biological research has demonstrated that freely swimming larval zebrafish will utilize an array of different strategies to retrieve their prey instead of one fixed strategy. As such, larval zebrafish’s foraging behaviour is comprised of three varying and interchanging phases of behaviour, exploratory, collective shoaling and focused hunting. This phase-switching occurs in an adaptive manner, due to prey availability, the specific environmental circumstances and the degree of individual success of the zebrafish’s foraging. Therefore, larval zebrafish allow for groups of larval zebrafish to achieve high hunting efficiency while remaining as a cohesive and equitable group.</p>
<p>The similarity between zebrafish in their foraging structure represents an egalitarian characteristic. Zebrafish have a shared set of rules, where weaker and less successful fish may have more freedom to move and elicit opportunities to forage. More successful (stronger) zebrafish will tend to limit the amount of aggressive pursuit that they engage in with less successful zebrafish. The presence of biological fairness across zebrafish populations prevents the monopolization of food resources and facilitates the performance of an entire group of zebrafish over extended periods, thus effectively making zebrafish much more suitable models for simulating population-based optimization processes.</p>
<p>Zebrafish also represent a natural form of resiliency to stagnation. If, after repeated attempts to capture prey, an area does not yield any food, zebrafish leave that area and return to exploring. This form of adaptive resetting of behaviour prevents prolonged unproductive behaviour and enables zebrafish to escape rapidly from areas that do not yield successful catches and continue searching for more productive areas to forage.</p>
<p>Inspired by the biological observations that are related to zebrafish behaviour, the Zebrafish Optimization (ZFO) is a computational simulation of the foraging intelligence of zebrafish that integrates exploration, search/schooling and hunting behaviour into one cohesive framework. Rather than relying on global adaptation alone, ZFO incorporates a fairness-driven adaptive mechanism and a stagnation escape providing a more effective balance between global exploration and local exploitation when applied to complex optimization landscapes.</p>
</sec>
<sec id="j_infor635_s_004">
<label>2.2</label>
<title>Zebrafish Behaviour</title>
<sec id="j_infor635_s_005">
<label>2.2.1</label>
<title>Exploration Behaviour</title>
<p>In typical schooling fish including sardines, tuna and herrings, individuals show highly synchronised collective movement behaviours driven by a uniform search process, in which the environment is explored using a predominantly similar set of rules with little dependence on individual foraging experiences. By contrast, larval zebrafish exhibit an individually responsive and autonomous exploratory strategy, where individual larvae explore unknown regions using their own visual and mechanosensory systems rather than fixed group formations or coordinated leadership structures. Additionally, movement magnitude is adaptively controlled in accordance with individual foraging performance, such that a low-performing individual is afforded greater exploratory freedom through a fairness-weighted behavioural adjustment. This unique biological mechanism forms the foundation of the individual foraging-success-based exploration strategy in the proposed Zebrafish Optimization Algorithm (ZFO) and consequently contributes to enhancing population diversity, balancing the exploration-exploitation process and improving resistance to premature convergence.</p>
<p>In ZFO, exploration behaviour refers to the manner in which zebrafish conduct their random foraging movements when they are finding food sources. During this stage of learning, an agent will move in a random or arbitrary fashion to discover new areas of the search space for food.</p>
<p>ZFO’s method of regulating how much exploration takes place during each learning iteration involves the implementation of a time-dependent or adaptive step size. In the ZFO algorithm, the initial iterations use a larger-than-normal step size and gradually reduce the amount of exploration as optimization continues.</p>
<p>The second aspect of regulating exploration intensity is its incorporation of a fitness-dependent fairness factor. As a result of the incorporation of the fitness-dependent fairness factor, agents with the worst fitness (i.e. those with the least success) can take larger exploratory actions, thereby allowing them to escape from areas where they are unsuccessful and re-enter the competition for food. On the other hand, well-performing agents will engage in more conservative actions to avoid dominating the exploratory actions of the remaining agents.</p>
</sec>
<sec id="j_infor635_s_006">
<label>2.2.2</label>
<title>Shoaling Behaviour</title>
<p>The significant distinction between shoaling zebrafish and other standard forms is that spatial regrouping adjusts dynamically to local conditions. The dynamic spatial organization of zebrafish shoal’s results in constant local rearrangement within the group as each individual reacts to neighbour attraction and communal chemical cue detection. This process constitutes environmentally induced, information based dynamic modulation of spatial positioning rather than predetermined locomotion and random drift is the underlying basis for the neighbourhood centroid shoaling mechanic of ZFO and guarantees that the population does not become uniform or otherwise cease to be effective throughout the course of the search.</p>
<p>The shoaling behaviour of zebrafish is the coordinated swimming patterns with keeping safe distances between shoal members through the collective behaviour of zebrafish. In ZFO, every agent interacts with its local neighbourhood based only on the spatial proximity to other agents, not on any global information. When determining how to move, an agent will move towards the centroid of its neighbourhood to facilitate information sharing among nearby agents.</p>
<p>A separation mechanism is incorporated to prevent agents from colliding with one another when they become close together. An agent will be repelled when it comes too close to a neighbouring agent. Furthermore, perturbations are added to allow for continued diversity while not disrupting the overall trend of convergence. The shoaling behaviour acts as an intermediary stage in stabilizing population dynamics and allows for the gradual improvement of the most promising areas.</p>
</sec>
<sec id="j_infor635_s_007">
<label>2.2.3</label>
<title>Hunting Behaviour</title>
<p>This ZFO attack technique is derived from the leaderless, synchronous predatory behaviour of larval zebrafish and distinct from many hierarchical predator models and conceptually dissimilar to hierarchically based search attack strategies of existing metaheuristic algorithms. Other predators typically coordinate attacks in a predetermined social structure or by a defined leader whose task assignments are known beforehand but larval zebrafish do not utilize a hierarchy and instead coordinate attack on the prey based on a dynamic interaction between their current distance to prey and individual search potential at that particular instant. This biologically uncommon, fitness-based, interaction-driven coordination serves as the foundation of the fitness-modulated with multi-agent exploitation method implemented in ZFO, where the population concentrates its search on potentially high-fitness regions while ensuring distribution and resistance to premature convergence.</p>
<p>Zebrafish exhibit a shift in their hunting behaviour once they detect a potential prey item. In this stage, they exhibit rapid and directed motion toward it. During this step, zebrafish are able to adapt their swimming paths to enhance their chance for a successful capture, often through the combination of sensory input from themselves and members of their immediate shoal.</p>
<p>Candidate solutions actively search prospective regions during the exploitation phase of the proposed optimiser, which is equivalent to the hunting activity mentioned in promising candidate solutions intensively and concurrently while pursuing both global and local optima.</p>
</sec>
<sec id="j_infor635_s_008">
<label>2.2.4</label>
<title>Stagnation Avoidance Behaviour</title>
<p>The ZFO stagnation recovery mechanism draws inspiration from a biologically unusual mode of adaptation observed in larval zebrafish. While many predator-inspired models do not explicitly model after a bout of searching failures, larval zebrafish make an individual decision and, once they accumulate a specific number of consecutive search failures, immediately leave that poor patch and redisperse back into unexplored space. The intelligent adaptive reset forms the basis of ZFO stagnation recovery, the stagnant agents are triggered for reactivation in order to restore diversity, get out of the local optimum and improve the exploration of several potential basins.</p>
<p>Zebrafish show an important trait of fairness-driven adaptation in zebrafish shoals. In a shoal, less-successful individuals have more space for the possible recovery from unfavourable areas, while successful individuals adopt a more conservative strategy. At the same time, zebrafish will leave areas that do not yield any successful hunting opportunities and will become exploratory and continue searching for better alternatives.</p>
<p>These biological mechanisms motivate the integration of two key components to create ZFO, which includes fitness-based adaptation and the ability to switch between behaviours when they become stagnant, thereby improving the robustness of the system and improving long-term search efficiency.</p>
</sec>
</sec>
<sec id="j_infor635_s_009">
<label>2.3</label>
<title>Mathematical Modelling of ZFO</title>
<p>The optimization of ZFO starts by generating a population of candidate zebrafish <inline-formula id="j_infor635_ineq_001"><alternatives><mml:math>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">X</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$(X)$]]></tex-math></alternatives></inline-formula> according to (<xref rid="j_infor635_eq_001">1</xref>). This candidate population is produced in a random manner between the determined lower bounds <inline-formula id="j_infor635_ineq_002"><alternatives><mml:math>
<mml:mi mathvariant="italic">l</mml:mi>
<mml:mi mathvariant="italic">b</mml:mi></mml:math><tex-math><![CDATA[$lb$]]></tex-math></alternatives></inline-formula> and upper bounds <inline-formula id="j_infor635_ineq_003"><alternatives><mml:math>
<mml:mi mathvariant="italic">u</mml:mi>
<mml:mi mathvariant="italic">b</mml:mi></mml:math><tex-math><![CDATA[$ub$]]></tex-math></alternatives></inline-formula> of the specific optimization problems. 
<disp-formula id="j_infor635_eq_001">
<label>(1)</label><alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:mi mathvariant="italic">z</mml:mi>
<mml:mo>=</mml:mo>
<mml:mfenced separators="" open="[" close="]">
<mml:mrow>
<mml:mtable columnspacing="4.0pt 4.0pt 4.0pt" equalrows="false" columnlines="none none none" equalcolumns="false" columnalign="center center center center">
<mml:mtr>
<mml:mtd class="array">
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">z</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mspace width="1em"/>
</mml:mtd>
<mml:mtd class="array">
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">z</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mspace width="1em"/>
</mml:mtd>
<mml:mtd class="array">
<mml:mo>…</mml:mo>
<mml:mspace width="1em"/>
</mml:mtd>
<mml:mtd class="array">
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">z</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">d</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="array">
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">z</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mspace width="1em"/>
</mml:mtd>
<mml:mtd class="array">
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">z</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mspace width="1em"/>
</mml:mtd>
<mml:mtd class="array">
<mml:mo>…</mml:mo>
<mml:mspace width="1em"/>
</mml:mtd>
<mml:mtd class="array">
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">z</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">d</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="array">
<mml:mo>⋮</mml:mo>
<mml:mspace width="1em"/>
</mml:mtd>
<mml:mtd class="array">
<mml:mo>⋮</mml:mo>
<mml:mspace width="1em"/>
</mml:mtd>
<mml:mtd class="array">
<mml:mo stretchy="false">⋱</mml:mo>
<mml:mspace width="1em"/>
</mml:mtd>
<mml:mtd class="array">
<mml:mo>⋮</mml:mo>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="array">
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">z</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">n</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mspace width="1em"/>
</mml:mtd>
<mml:mtd class="array">
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">z</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">n</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mspace width="1em"/>
</mml:mtd>
<mml:mtd class="array">
<mml:mo>…</mml:mo>
<mml:mspace width="1em"/>
</mml:mtd>
<mml:mtd class="array">
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">z</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">n</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">d</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
<mml:mo mathvariant="normal">,</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ z=\left[\begin{array}{c@{\hskip4.0pt}c@{\hskip4.0pt}c@{\hskip4.0pt}c}{z_{1,1}}\hspace{1em}& {z_{1,2}}\hspace{1em}& \dots \hspace{1em}& {z_{1,d}}\\ {} {z_{2,1}}\hspace{1em}& {z_{2,2}}\hspace{1em}& \dots \hspace{1em}& {z_{2,d}}\\ {} \vdots \hspace{1em}& \vdots \hspace{1em}& \ddots \hspace{1em}& \vdots \\ {} {z_{n,1}}\hspace{1em}& {z_{n,2}}\hspace{1em}& \dots \hspace{1em}& {z_{n,d}}\end{array}\right],\]]]></tex-math></alternatives>
</disp-formula> 
where <italic>Z</italic> is the set of candidate zebrafish solutions to date, with <inline-formula id="j_infor635_ineq_004"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">z</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">j</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${z_{i,j}}$]]></tex-math></alternatives></inline-formula> indicating the location of the decision variable <italic>j</italic> for the zebrafish solution <italic>i</italic>. The population size is denoted by <italic>n</italic>, while the problem dimensionality is stated as <italic>d</italic>.</p>
<p>Every zebrafish’s initial value is defined as a randomly generated number from the uniform distribution as expressed: 
<disp-formula id="j_infor635_eq_002">
<label>(2)</label><alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">z</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mi mathvariant="italic">l</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">b</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>+</mml:mo>
<mml:mtext>rand</mml:mtext>
<mml:mo>·</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">u</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">b</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>−</mml:mo>
<mml:mi mathvariant="italic">l</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">b</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>.</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ {z_{i,j}}=l{b_{j}}+\text{rand}\cdot (u{b_{j}}-l{b_{j}}).\]]]></tex-math></alternatives>
</disp-formula> 
In (<xref rid="j_infor635_eq_002">2</xref>) rand is a randomly generated number obtained from the uniform distribution within the range of <inline-formula id="j_infor635_ineq_005"><alternatives><mml:math>
<mml:mo fence="true" stretchy="false">[</mml:mo>
<mml:mn>0</mml:mn>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo fence="true" stretchy="false">]</mml:mo></mml:math><tex-math><![CDATA[$[0,1]$]]></tex-math></alternatives></inline-formula>, with <inline-formula id="j_infor635_ineq_006"><alternatives><mml:math>
<mml:mi mathvariant="italic">l</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">b</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">j</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[$l{b_{j}}$]]></tex-math></alternatives></inline-formula> representing the lower limit and <inline-formula id="j_infor635_ineq_007"><alternatives><mml:math>
<mml:mi mathvariant="italic">u</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">b</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">j</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[$u{b_{j}}$]]></tex-math></alternatives></inline-formula> denoting the upper limit of decision variable <italic>j</italic>.</p>
<p>At each iteration, the best solution found so far is defined as the zebrafish solution whose associated fitness value is the smallest. The best solution becomes the global best and will guide the fish in hunting and shoaling in the next iteration.</p>
<sec id="j_infor635_s_010">
<label>2.3.1</label>
<title>Exploration Phase</title>
<p>The earlier stages of optimization for zebrafish are primarily characterized by exploratory responses. In the absence of known food sources, the exploratory response is analogous to a random search for potential locations of food. During this phase, an agent’s movements will be random throughout the search space to attempt to find areas to discover unexplored regions.</p>
<p>The update rule for position on exploration, for the <italic>i</italic>th zebrafish at time <inline-formula id="j_infor635_ineq_008"><alternatives><mml:math>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">t</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$(t)$]]></tex-math></alternatives></inline-formula>, is represented by: 
<disp-formula id="j_infor635_eq_003">
<label>(3)</label><alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">Z</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
<mml:mo>+</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msubsup>
<mml:mo>=</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">Z</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
</mml:mrow>
</mml:msubsup>
<mml:mo>+</mml:mo>
<mml:mi mathvariant="italic">α</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">t</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo>+</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ϕ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mi mathvariant="italic">R</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ {Z_{i}^{t+1}}={Z_{i}^{t}}+\alpha (t)(1+{\phi _{i}})R,\]]]></tex-math></alternatives>
</disp-formula> 
where <italic>R</italic> follows a Gaussian distribution <inline-formula id="j_infor635_ineq_009"><alternatives><mml:math>
<mml:mi mathvariant="italic">N</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>0</mml:mn>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$N(0,1)$]]></tex-math></alternatives></inline-formula> in (<xref rid="j_infor635_eq_003">3</xref>) and (<xref rid="j_infor635_eq_004">4</xref>) <inline-formula id="j_infor635_ineq_010"><alternatives><mml:math>
<mml:mi mathvariant="italic">α</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">t</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$\alpha (t)$]]></tex-math></alternatives></inline-formula> is representation of time-varying exploration factor, defined by: 
<disp-formula id="j_infor635_eq_004">
<label>(4)</label><alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:mi mathvariant="italic">α</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">t</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">α</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo movablelimits="false">max</mml:mo>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo>−</mml:mo>
<mml:mi mathvariant="italic">τ</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>+</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">α</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo movablelimits="false">min</mml:mo>
</mml:mrow>
</mml:msub>
<mml:mi mathvariant="italic">τ</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mspace width="1em"/>
<mml:mi mathvariant="italic">τ</mml:mi>
<mml:mo>=</mml:mo><mml:mstyle displaystyle="true">
<mml:mfrac>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">T</mml:mi>
</mml:mrow>
</mml:mfrac>
</mml:mstyle>
<mml:mo mathvariant="normal">,</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ \alpha (t)={\alpha _{\max }}(1-\tau )+{\alpha _{\min }}\tau ,\hspace{1em}\tau =\frac{t}{T},\]]]></tex-math></alternatives>
</disp-formula> 
where <inline-formula id="j_infor635_ineq_011"><alternatives><mml:math>
<mml:mi mathvariant="italic">τ</mml:mi>
<mml:mo stretchy="false">∈</mml:mo>
<mml:mo fence="true" stretchy="false">[</mml:mo>
<mml:mn>0</mml:mn>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo fence="true" stretchy="false">]</mml:mo></mml:math><tex-math><![CDATA[$\tau \in [0,1]$]]></tex-math></alternatives></inline-formula> is the normalized step of iteration progress (value from 0 to 1), <italic>t</italic> is the current iteration, <italic>T</italic> is the maximum number of iterations, <inline-formula id="j_infor635_ineq_012"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">α</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo movablelimits="false">max</mml:mo>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\alpha _{\max }}$]]></tex-math></alternatives></inline-formula> and <inline-formula id="j_infor635_ineq_013"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">α</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo movablelimits="false">min</mml:mo>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\alpha _{\min }}$]]></tex-math></alternatives></inline-formula> are the upper and lower bounds of the exploration step size respectively.</p>
<p>In (<xref rid="j_infor635_eq_005">5</xref>) represents term <inline-formula id="j_infor635_ineq_014"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ϕ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\phi _{i}}$]]></tex-math></alternatives></inline-formula> called the fairness factor, which encourages greater activity in poorly performing candidate solutions, is defined as: 
<disp-formula id="j_infor635_eq_005">
<label>(5)</label><alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ϕ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mo movablelimits="false">max</mml:mo>
<mml:mo mathvariant="normal" fence="true" maxsize="2.03em" minsize="2.03em">(</mml:mo>
<mml:mn>0</mml:mn>
<mml:mo mathvariant="normal">,</mml:mo><mml:mstyle displaystyle="true">
<mml:mfrac>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">F</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="normal">median</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>−</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">F</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="normal">best</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>+</mml:mo>
<mml:mi mathvariant="italic">ε</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">F</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>−</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">F</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="normal">best</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfrac>
</mml:mstyle>
<mml:mo mathvariant="normal" fence="true" maxsize="2.03em" minsize="2.03em">)</mml:mo>
<mml:mo>.</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ {\phi _{i}}=\max \bigg(0,\frac{{F_{\mathrm{median}}}-{F_{\mathrm{best}}}+\varepsilon }{{F_{i}}-{F_{\mathrm{best}}}}\bigg).\]]]></tex-math></alternatives>
</disp-formula> 
This exploration method reduces the risk of premature convergence, as well as increasing the area coverage of the search space. Where <inline-formula id="j_infor635_ineq_015"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">F</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="normal">median</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${F_{\mathrm{median}}}$]]></tex-math></alternatives></inline-formula> is the median fitness value of the population, <inline-formula id="j_infor635_ineq_016"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">F</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="normal">best</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>+</mml:mo>
<mml:mi mathvariant="italic">ε</mml:mi></mml:math><tex-math><![CDATA[${F_{\mathrm{best}}}+\varepsilon $]]></tex-math></alternatives></inline-formula> is the best fitness value encountered so far and is a tiny positive value <inline-formula id="j_infor635_ineq_017"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mn>10</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mo>−</mml:mo>
<mml:mn>10</mml:mn>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${10^{-10}}$]]></tex-math></alternatives></inline-formula> to avoid division by zero. The operator <inline-formula id="j_infor635_ineq_018"><alternatives><mml:math>
<mml:mo movablelimits="false">max</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>0</mml:mn>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mo>·</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$\max (0,\cdot )$]]></tex-math></alternatives></inline-formula> ensures that is <inline-formula id="j_infor635_ineq_019"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ϕ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\phi _{i}}$]]></tex-math></alternatives></inline-formula> non-negative.</p>
</sec>
<sec id="j_infor635_s_011">
<label>2.3.2</label>
<title>Shoaling Behaviour</title>
<p>Zebrafish exhibit shoaling as a mechanism for social regrouping. Shoaling allows individuals to swim together while keeping safe distances apart from one another. Through shoaling behaviour, information can be shared between neighbouring zebrafish. It also allows the zebrafish to continue to move together as they migrate from one location to the next.</p>
<p>The local centre associated with the <italic>i</italic>th zebrafish is calculated using (<xref rid="j_infor635_eq_006">6</xref>): 
<disp-formula id="j_infor635_eq_006">
<label>(6)</label><alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">C</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo><mml:mstyle displaystyle="true">
<mml:mfrac>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">k</mml:mi>
</mml:mrow>
</mml:mfrac>
</mml:mstyle>
<mml:munder>
<mml:mrow>
<mml:mstyle displaystyle="true">
<mml:mo largeop="true" movablelimits="false">∑</mml:mo></mml:mstyle>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">j</mml:mi>
<mml:mo stretchy="false">∈</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">N</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:munder>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">X</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>.</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ {C_{i}}=\frac{1}{k}\sum \limits_{j\in {N_{i}}}{X_{j}}.\]]]></tex-math></alternatives>
</disp-formula> 
Zebrafish update their position according to: 
<disp-formula id="j_infor635_eq_007">
<label>(7)</label><alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">X</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
<mml:mo>+</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msubsup>
<mml:mo>=</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">X</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
</mml:mrow>
</mml:msubsup>
<mml:mo>+</mml:mo>
<mml:mi mathvariant="italic">β</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo>+</mml:mo>
<mml:mn>0.2</mml:mn>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ϕ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo mathvariant="normal" fence="true" maxsize="1.19em" minsize="1.19em">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">C</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>−</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">X</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
</mml:mrow>
</mml:msubsup>
<mml:mo mathvariant="normal" fence="true" maxsize="1.19em" minsize="1.19em">)</mml:mo>
<mml:mo>−</mml:mo>
<mml:mi mathvariant="italic">γ</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">S</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>+</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">δ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">s</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mi mathvariant="italic">R</mml:mi>
<mml:mo>.</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ {X_{i}^{t+1}}={X_{i}^{t}}+\beta (1+0.2{\phi _{i}})\big({C_{i}}-{X_{i}^{t}}\big)-\gamma {S_{i}}+{\delta _{s}}R.\]]]></tex-math></alternatives>
</disp-formula> 
As given in (<xref rid="j_infor635_eq_007">7</xref>), <inline-formula id="j_infor635_ineq_020"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">S</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">X</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
</mml:mrow>
</mml:msubsup>
<mml:mo>−</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">X</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="normal">near</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${S_{i}}={X_{i}^{t}}-{X_{\mathrm{near},i}}$]]></tex-math></alternatives></inline-formula>, where <italic>k</italic> is the size of neighbourhood, <inline-formula id="j_infor635_ineq_021"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">N</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="normal">i</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${N_{\mathrm{i}}}$]]></tex-math></alternatives></inline-formula> is the set of the <italic>k</italic> nearest neighbours of agent <italic>i</italic> and <inline-formula id="j_infor635_ineq_022"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">C</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${C_{i}}$]]></tex-math></alternatives></inline-formula> is the local shoal centroid of agent <italic>i</italic> and <italic>X</italic> is the separation vector from nearest neighbour of the agent i to avoid congestion, <italic>β</italic> is the weight of shoaling attraction, <italic>γ</italic> is the weight of repulsion (separation), <inline-formula id="j_infor635_ineq_023"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">δ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">s</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\delta _{s}}$]]></tex-math></alternatives></inline-formula> is the weight of random perturbation and <italic>R</italic> is a vector of random numbers sampled from <inline-formula id="j_infor635_ineq_024"><alternatives><mml:math>
<mml:mi mathvariant="italic">N</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>0</mml:mn>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$N(0,1)$]]></tex-math></alternatives></inline-formula>. <inline-formula id="j_infor635_ineq_025"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">S</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${S_{i}}$]]></tex-math></alternatives></inline-formula> prevents zebrafish from clumping on each other <italic>β</italic>, <italic>γ</italic> and <inline-formula id="j_infor635_ineq_026"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">δ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">s</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\delta _{s}}$]]></tex-math></alternatives></inline-formula> are parameters used to define attraction, repulsion and random perturbation weight, respectively. Shoaling behaviour reflects the shift from exploration or exploitation behaviour to cohesion behaviour of the swarm.</p>
</sec>
<sec id="j_infor635_s_012">
<label>2.3.3</label>
<title>Hunting Phase</title>
<p>After identifying areas with significant prey abundance, zebrafish begin to hunt by moving towards those areas in a directed manner. During this hunting process, zebrafish can use both local and global information to help improve their potential prey location.</p>
<p><inline-formula id="j_infor635_ineq_027"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">D</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">g</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">Z</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="normal">best</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>−</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">Z</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${D_{g}}={Z_{\mathrm{best}}}-{Z_{i}}$]]></tex-math></alternatives></inline-formula> is the global direction vector in (<xref rid="j_infor635_eq_008">8</xref>) toward population best position <inline-formula id="j_infor635_ineq_028"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">Z</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="normal">best</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${Z_{\mathrm{best}}}$]]></tex-math></alternatives></inline-formula> and <inline-formula id="j_infor635_ineq_029"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">D</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">l</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">Z</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="normal">lbest</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>−</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">Z</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${D_{l}}={Z_{\mathrm{lbest}}}-{Z_{i}}$]]></tex-math></alternatives></inline-formula> is the local direction vector toward local best position. 
<disp-formula id="j_infor635_eq_008">
<label>(8)</label><alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">D</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">g</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">Z</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="normal">best</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>−</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">Z</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mspace width="2em"/>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">D</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">l</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">Z</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="normal">lbest</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>−</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">Z</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>.</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ {D_{g}}={Z_{\mathrm{best}}}-{Z_{i}},\hspace{2em}{D_{l}}={Z_{\mathrm{lbest}}}-{Z_{i}}.\]]]></tex-math></alternatives>
</disp-formula> 
These two hunting directions will be combined to form the hunting direction: 
<disp-formula id="j_infor635_eq_009">
<label>(9)</label><alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">D</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">h</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">w</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">g</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">D</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">g</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>+</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo>−</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">w</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">g</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">D</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">l</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>.</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ {D_{h}}={w_{g}}{D_{g}}+(1-{w_{g}}){D_{l}}.\]]]></tex-math></alternatives>
</disp-formula> 
As given in (<xref rid="j_infor635_eq_009">9</xref>), <inline-formula id="j_infor635_ineq_030"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">D</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">h</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${D_{h}}$]]></tex-math></alternatives></inline-formula> represents the holistic hunting direction and <italic>w</italic> is the adaptive global influence weight within range <inline-formula id="j_infor635_ineq_031"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">w</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">g</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo fence="true" stretchy="false">[</mml:mo>
<mml:mn>0</mml:mn>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo fence="true" stretchy="false">]</mml:mo></mml:math><tex-math><![CDATA[${w_{g}}[0,1]$]]></tex-math></alternatives></inline-formula>.</p>
<p>The global influence weight <inline-formula id="j_infor635_ineq_032"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">w</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">g</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${w_{g}}$]]></tex-math></alternatives></inline-formula> is defined in (<xref rid="j_infor635_eq_010">10</xref>), where <inline-formula id="j_infor635_ineq_033"><alternatives><mml:math>
<mml:mi mathvariant="italic">τ</mml:mi>
<mml:mo>=</mml:mo><mml:mstyle displaystyle="false">
<mml:mfrac>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">T</mml:mi>
</mml:mrow>
</mml:mfrac>
</mml:mstyle></mml:math><tex-math><![CDATA[$\tau =\frac{t}{T}$]]></tex-math></alternatives></inline-formula> is the normalised iteration progress. When <inline-formula id="j_infor635_ineq_034"><alternatives><mml:math>
<mml:mi mathvariant="italic">τ</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>0</mml:mn></mml:math><tex-math><![CDATA[$\tau =0$]]></tex-math></alternatives></inline-formula> (early iterations), <inline-formula id="j_infor635_ineq_035"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">w</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">g</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mn>0.5</mml:mn></mml:math><tex-math><![CDATA[${w_{g}}=0.5$]]></tex-math></alternatives></inline-formula> global and local guidance contribute equally to <inline-formula id="j_infor635_ineq_036"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">D</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">h</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${D_{h}}$]]></tex-math></alternatives></inline-formula>, where <inline-formula id="j_infor635_ineq_037"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">D</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">h</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mn>0.5</mml:mn>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">D</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">g</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>+</mml:mo>
<mml:mn>0.5</mml:mn>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">D</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">l</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${D_{h}}=0.5{D_{g}}+0.5{D_{l}}$]]></tex-math></alternatives></inline-formula>, maintaining balance between local and global search. As <inline-formula id="j_infor635_ineq_038"><alternatives><mml:math>
<mml:mi mathvariant="italic">τ</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn></mml:math><tex-math><![CDATA[$\tau =1$]]></tex-math></alternatives></inline-formula> (late iterations), <inline-formula id="j_infor635_ineq_039"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">w</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">g</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mn>1.0</mml:mn></mml:math><tex-math><![CDATA[${w_{g}}=1.0$]]></tex-math></alternatives></inline-formula>, means <inline-formula id="j_infor635_ineq_040"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">D</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">h</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">w</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">g</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">D</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">g</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>+</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo>−</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">w</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">g</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">D</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">l</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${D_{h}}={w_{g}}{D_{g}}+(1-{w_{g}}){D_{l}}$]]></tex-math></alternatives></inline-formula>. <inline-formula id="j_infor635_ineq_041"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">D</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">l</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mn>1.0</mml:mn>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">D</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">g</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>+</mml:mo>
<mml:mn>0</mml:mn>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">D</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">l</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">D</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">g</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${D_{l}}=1.0{D_{g}}+0{D_{l}}={D_{g}}$]]></tex-math></alternatives></inline-formula>. And hence <inline-formula id="j_infor635_ineq_042"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">D</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">g</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${D_{g}}$]]></tex-math></alternatives></inline-formula>, the direction is then dictated totally by the global best. If <inline-formula id="j_infor635_ineq_043"><alternatives><mml:math>
<mml:mi mathvariant="italic">τ</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>0</mml:mn></mml:math><tex-math><![CDATA[$\tau =0$]]></tex-math></alternatives></inline-formula> (early iterations), then <inline-formula id="j_infor635_ineq_044"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">w</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">g</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mn>0.5</mml:mn></mml:math><tex-math><![CDATA[${w_{g}}=0.5$]]></tex-math></alternatives></inline-formula> and so the global and local directions equally contribute to the initial exploration: 
<disp-formula id="j_infor635_eq_010">
<label>(10)</label><alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">w</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">g</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mn>0.5</mml:mn>
<mml:mo>+</mml:mo>
<mml:mn>0.5</mml:mn><mml:mstyle displaystyle="true">
<mml:mfrac>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">T</mml:mi>
</mml:mrow>
</mml:mfrac>
</mml:mstyle>
<mml:mo>.</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ {w_{g}}=0.5+0.5\frac{t}{T}.\]]]></tex-math></alternatives>
</disp-formula>
</p>
<p>The new hunting direction of zebrafish will be updated according to (<xref rid="j_infor635_eq_011">11</xref>), where <italic>η</italic> is the hunting step scale factor, <italic>ξ</italic> is the hunting perturbation weight and <italic>R</italic> is a random vector drawn from <inline-formula id="j_infor635_ineq_045"><alternatives><mml:math>
<mml:mi mathvariant="italic">N</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>0</mml:mn>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$N(0,1)$]]></tex-math></alternatives></inline-formula>. The term <inline-formula id="j_infor635_ineq_046"><alternatives><mml:math>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo>−</mml:mo>
<mml:mi mathvariant="italic">τ</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$(1-\tau )$]]></tex-math></alternatives></inline-formula> makes the hunting step get smaller with each iteration, enabling fine-grained exploitation at later iterations: 
<disp-formula id="j_infor635_eq_011">
<label>(11)</label><alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">Z</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
<mml:mo>+</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msubsup>
<mml:mo>=</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">Z</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
</mml:mrow>
</mml:msubsup>
<mml:mo>+</mml:mo>
<mml:mi mathvariant="italic">η</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo>+</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ϕ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo>−</mml:mo>
<mml:mi mathvariant="italic">τ</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">D</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">h</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>+</mml:mo>
<mml:mi mathvariant="italic">ξ</mml:mi>
<mml:mi mathvariant="italic">R</mml:mi>
<mml:mo>.</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ {Z_{i}^{t+1}}={Z_{i}^{t}}+\eta (1+{\phi _{i}})(1-\tau ){D_{h}}+\xi R.\]]]></tex-math></alternatives>
</disp-formula>
</p>
<p>This feature enables zebrafish to exploit promising regions more thoroughly in later iterations while retaining mobility for lower-fitness individuals.</p>
</sec>
<sec id="j_infor635_s_013">
<label>2.3.4</label>
<title>Stagnation-Aware Behavioural Adaptation</title>
<p>The natural behaviour of zebrafish also exhibits a periodicity in their hunting patterns. ZFO implements a mechanism that forces a zebra to reperform line searches on areas that are deemed to have experienced more than a fixed number of unsuccessful hunting attempts. 
<disp-formula id="j_infor635_eq_012">
<label>(12)</label><alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">Z</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
<mml:mo>+</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msubsup>
<mml:mo>=</mml:mo>
<mml:mi mathvariant="italic">L</mml:mi>
<mml:mi mathvariant="italic">B</mml:mi>
<mml:mo>+</mml:mo>
<mml:mi mathvariant="italic">R</mml:mi>
<mml:mo>⊙</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">U</mml:mi>
<mml:mi mathvariant="italic">B</mml:mi>
<mml:mo>−</mml:mo>
<mml:mi mathvariant="italic">L</mml:mi>
<mml:mi mathvariant="italic">B</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo mathvariant="normal">,</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ {Z_{i}^{t+1}}=LB+R\odot (UB-LB),\]]]></tex-math></alternatives>
</disp-formula> 
where <inline-formula id="j_infor635_ineq_047"><alternatives><mml:math>
<mml:mi mathvariant="italic">L</mml:mi>
<mml:mi mathvariant="italic">B</mml:mi></mml:math><tex-math><![CDATA[$LB$]]></tex-math></alternatives></inline-formula> and <inline-formula id="j_infor635_ineq_048"><alternatives><mml:math>
<mml:mi mathvariant="italic">U</mml:mi>
<mml:mi mathvariant="italic">B</mml:mi></mml:math><tex-math><![CDATA[$UB$]]></tex-math></alternatives></inline-formula> are the lower and upper bound vectors of the search space in (<xref rid="j_infor635_eq_002">2</xref>), <inline-formula id="j_infor635_ineq_049"><alternatives><mml:math>
<mml:mi mathvariant="italic">R</mml:mi>
<mml:mo stretchy="false">∼</mml:mo>
<mml:mi mathvariant="italic">U</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>0</mml:mn>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$R\sim U(0,1)$]]></tex-math></alternatives></inline-formula> is a vector of uniformly distributed random numbers and ⊙ denotes element-wise (Hadamard) multiplication. In (<xref rid="j_infor635_eq_012">12</xref>) presents the vectorized form of initialization. This type of adaptive reset allows the algorithm the opportunity to recover from getting stuck in a local solution (e.g. local search) and continue its effective long-term search. An adaptive stagnation threshold <inline-formula id="j_infor635_ineq_050"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">S</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
<mml:mi mathvariant="italic">h</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mo movablelimits="false">max</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>3</mml:mn>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="normal">round</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>0.05</mml:mn>
<mml:mo>×</mml:mo>
<mml:mi mathvariant="italic">T</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[${S_{th}}=\max (3,\mathrm{round}(0.05\times T))$]]></tex-math></alternatives></inline-formula>, where <italic>T</italic> is the number of iterations. It refers to the number of unsuccessful search steps allowed consecutively before reinitialization. It is scaled dynamically according to optimization horizon and bounded from below by 3. This condition for reset is designed such that it triggers early enough for detecting premature stagnation in short time periods and sustained enough for detection of stagnation in long time periods before reset.</p>
</sec>
<sec id="j_infor635_s_014">
<label>2.3.5</label>
<title>Behavioural Transition Strategy</title>
<p>Exploration, shoaling and hunting are selected according to a probability-related method which relates to the interdependence of an individual agent’s fitness at a specific time and the agent’s progress through the optimization process: <disp-formula-group id="j_infor635_dg_001">
<disp-formula id="j_infor635_eq_013">
<label>(13)</label><alternatives><mml:math display="block">
<mml:mtable displaystyle="true" columnalign="right left" columnspacing="0pt">
<mml:mtr>
<mml:mtd class="align-odd"/>
<mml:mtd class="align-even">
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="normal">explore</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo>−</mml:mo>
<mml:mi mathvariant="italic">τ</mml:mi>
<mml:mo>+</mml:mo>
<mml:mn>0.5</mml:mn>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ϕ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[\begin{aligned}{}& {P_{\mathrm{explore}}}=1-\tau +0.5{\phi _{i}},\end{aligned}\]]]></tex-math></alternatives>
</disp-formula>
<disp-formula id="j_infor635_eq_014">
<label>(14)</label><alternatives><mml:math display="block">
<mml:mtable displaystyle="true" columnalign="right left" columnspacing="0pt">
<mml:mtr>
<mml:mtd class="align-odd"/>
<mml:mtd class="align-even">
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="normal">hunt</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mi mathvariant="italic">τ</mml:mi>
<mml:mo>+</mml:mo>
<mml:mn>0.3</mml:mn>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ϕ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[\begin{aligned}{}& {P_{\mathrm{hunt}}}=\tau +0.3{\phi _{i}},\end{aligned}\]]]></tex-math></alternatives>
</disp-formula>
<disp-formula id="j_infor635_eq_015">
<label>(15)</label><alternatives><mml:math display="block">
<mml:mtable displaystyle="true" columnalign="right left" columnspacing="0pt">
<mml:mtr>
<mml:mtd class="align-odd"/>
<mml:mtd class="align-even">
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="normal">shoal</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo>−</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="normal">explore</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>+</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="normal">hunt</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo mathvariant="normal">,</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[\begin{aligned}{}& {P_{\mathrm{shoal}}}=1-({P_{\mathrm{explore}}}+{P_{\mathrm{hunt}}}),\end{aligned}\]]]></tex-math></alternatives>
</disp-formula>
</disp-formula-group> where <inline-formula id="j_infor635_ineq_051"><alternatives><mml:math>
<mml:mi mathvariant="italic">τ</mml:mi>
<mml:mo>=</mml:mo><mml:mstyle displaystyle="false">
<mml:mfrac>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">T</mml:mi>
</mml:mrow>
</mml:mfrac>
</mml:mstyle></mml:math><tex-math><![CDATA[$\tau =\frac{t}{T}$]]></tex-math></alternatives></inline-formula> is the normalised iteration progress and <inline-formula id="j_infor635_ineq_052"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">φ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="normal">i</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\varphi _{\mathrm{i}}}$]]></tex-math></alternatives></inline-formula> is the individual fairness value defined by (<xref rid="j_infor635_eq_013">13</xref>), (<xref rid="j_infor635_eq_014">14</xref>) and (<xref rid="j_infor635_eq_015">15</xref>). <inline-formula id="j_infor635_ineq_053"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="normal">explore</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${P_{\mathrm{explore}}}$]]></tex-math></alternatives></inline-formula> are the respective probabilities for entry into exploration, <inline-formula id="j_infor635_ineq_054"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="normal">hunt</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${P_{\mathrm{hunt}}}$]]></tex-math></alternatives></inline-formula> is the hunting and remaining shoaling state <inline-formula id="j_infor635_ineq_055"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="normal">shoal</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${P_{\mathrm{shoal}}}$]]></tex-math></alternatives></inline-formula>, which is normalized to unity before making state selection. The value of <inline-formula id="j_infor635_ineq_056"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="normal">explore</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${P_{\mathrm{explore}}}$]]></tex-math></alternatives></inline-formula> is monotonically decreasing with progress, which implies that later iterations favour the exploration state. On the other hand, <inline-formula id="j_infor635_ineq_057"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="normal">hunt</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${P_{\mathrm{hunt}}}$]]></tex-math></alternatives></inline-formula> increases with both <italic>τ</italic> and <inline-formula id="j_infor635_ineq_058"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">φ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="normal">i</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\varphi _{\mathrm{i}}}$]]></tex-math></alternatives></inline-formula>, so the high-fitness agent in later iteration has the biggest probability of directed hunting. During each iteration, the above three states probabilities are separately sampled by every agent to make the behaviour choices and generate a heterogeneous population that exploration, shoaling and hunting exist at the same time among the swarm. This individual-level adaptation strategy of phase-switching provides ZFO to maintain an everlasting compromise between global search and local exploitation during the process.</p>
</sec>
</sec>
<sec id="j_infor635_s_015">
<label>2.4</label>
<title>Computational Complexity</title>
<p>The Zebrafish Optimization (ZFO) algorithm has a computational complexity that is directly linked to three important parameters: Population size <italic>N</italic>, dimension <italic>d</italic> and maximum iterations <inline-formula id="j_infor635_ineq_059"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mtext>Max</mml:mtext>
</mml:mrow>
<mml:mrow>
<mml:mtext>iteration</mml:mtext>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\text{Max}_{\text{iteration}}}$]]></tex-math></alternatives></inline-formula>, that will be conducted with the algorithm. The computational cost of creating the initial zebrafish population and assessing their fitness during initialization requires <inline-formula id="j_infor635_ineq_060"><alternatives><mml:math>
<mml:mi mathvariant="script">O</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">N</mml:mi>
<mml:mo>×</mml:mo>
<mml:mi mathvariant="italic">d</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$\mathcal{O}(N\times d)$]]></tex-math></alternatives></inline-formula> time. The calculation of population statistics such as highest median fitness during each iteration has an <inline-formula id="j_infor635_ineq_061"><alternatives><mml:math>
<mml:mi mathvariant="script">O</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">N</mml:mi>
<mml:mo movablelimits="false">log</mml:mo>
<mml:mi mathvariant="italic">N</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$\mathcal{O}(N\log N)$]]></tex-math></alternatives></inline-formula> cost associated. Finally, the most computationally expensive part of ZFO is calculating the distances among zebrafish; this most commonly occurs when identifying the neighbours closest to a given zebrafish and the independent zebrafish sends its updates in isolation from other zebrafish, the method proposed is ideally suited for parallel and distributed implementations.</p>
<fig id="j_infor635_fig_001">
<label>Fig. 1</label>
<caption>
<p>Behavioural modelling of Zebrafish Optimization Algorithm (ZFO).</p>
</caption>
<graphic xlink:href="infor635_g001.jpg"/>
</fig>
<p>Figure <xref rid="j_infor635_fig_001">1</xref> shows various behaviours of Zebrafish shown in A, B, C and D. The exploration behaviour is illustrated in figure A, which depicts how individual zebrafish will disperse outwards in random directions through the search space looking for food (the goal) and creating a global exploration of the environment while preventing premature or simultaneous convergence to food at the same time. The shoaling behaviour is illustrated in figure B, which shows how zebrafish use the same movement direction together in groups and communicate with one another, allowing them to better utilize their time by sharing information and creating a cohesive population. This shoaling behaviour would allow zebrafish to move toward more productive parts of the overall environment, enabling them to exploit these specific areas more efficiently. The hunting behaviour is shown in figure C, which illustrates a group of zebrafish that will aggressively come together in a concentrated manner in order to capture their target or prey. This illustrates how the hunting behaviour corresponds to the intensified search localized around the best solution found to date. The stagnation-aware behaviour shown in figure D allows zebrafish to modify their movements if they sense there is no further progress being made. When this occurs, the movement patterns change, allowing for re-establishment of diversity in their search process and the ability to jump out of any local optimum situation. With the use of zebrafish images, the biological feasibility of the ZFO is greatly enhanced visually, thereby reinforcing the correlation between the behaviours of natural zebrafish and the respective algorithmic representation of these behaviours.</p>
<fig id="j_infor635_fig_002">
<label>Algorithm 1</label>
<caption>
<p>Pseudo code of Proposed Zebrafish Optimization (ZFO)</p>
</caption>
<graphic xlink:href="infor635_g002.jpg"/>
</fig>
</sec>
<sec id="j_infor635_s_016">
<label>2.5</label>
<title>Algorithm Framework</title>
<p>The ZFO Algorithm <xref rid="j_infor635_fig_002">1</xref> flowchart is illustrated in Fig. <xref rid="j_infor635_fig_003">2</xref>. From an initialization of a zebrafish population (within established search bounds), fitness evaluations take place to ascertain which individuals represent the “global best”. In each iteration, each individual zebrafish will compute a “fairness factor” for itself based on its fitness relative to other members of its population; they will also determine their relative neighbourhoods. If an individual achieves a greater degree of fitness than its neighbours during the current iteration, that would indicate that it occupies the region of the “local centre” as well as the “local best”. A stagnation counter will be continually updated to monitor the extent of one’s progress from one iteration to the next; if, within a given period, no improvement has occurred, the stagnation counter will reach its “stagnation threshold”. When that occurs, the zebrafish that has become stagnant is forced into a state of exploration, which serves to help it escape from being trapped in a local optimum. All members of the population have equal and independent probabilistic activations of states associated with the three aforementioned behaviours: exploration, shoaling and hunting; the behaviours of shoaling and hunting can assist zebrafish in rapidly changing their positions during position updates while ensuring a balance between reliable global exploration and effective local exploitation. After boundary control, the fitness values of all members will be reevaluated to identify and document the global best candidate for the current iteration. This process will continue until the designated maximum iteration number is reached, at which time the convergence history will be documented for further analysis.</p>
<fig id="j_infor635_fig_003">
<label>Fig. 2</label>
<caption>
<p>Flowchart of proposed ZFO algorithm.</p>
</caption>
<graphic xlink:href="infor635_g003.jpg"/>
</fig>
</sec>
</sec>
<sec id="j_infor635_s_017">
<label>3</label>
<title>Experimental Analysis</title>
<p>The proposed ZFO algorithm is evaluated through experimental assessment by analysing its effectiveness, robustness and convergence speed to an optimal solution and compared against other well-known metaheuristic approaches. All experiments were conducted under identical experimental conditions to fairness equality and reproducibility among experiments.</p>
<sec id="j_infor635_s_018">
<label>3.1</label>
<title>Benchmark Functions</title>
<p>The Zebrafish Optimization (ZFO) algorithm employed a number of commonly used benchmark functions. These types of benchmark functions are frequently used in optimization to evaluate an optimization algorithm’s ability to explore and exploit the solution space and how it converges toward a solution based on different landscape structures; they have been used to compare and contrast other metaheuristic optimization algorithms based on their ability to adapt to different environmental conditions. The benchmark functions selected for use in the current study include categories of functions that contain unimodal, multimodal and fixed dimensional multimodal. There is a balanced and comprehensive test of all forms of benchmark function types available for use in the ZFO evaluation process.</p>
<p>The ZFO algorithm was benchmarked against three classes of classic benchmark problems: the unimodal functions (F1–F7), the multimodal functions (F8–F13) and the fixed dimension multimodal problems (F14–F23). Unimodal functions test exploration and convergence precision, multimodal functions test the problem of moving out of local minima and fixed-dimension multimodal functions have relatively low dimensionality and smoother landscapes. All benchmark problems could be properly characterized with mathematical definition, search boundaries and global optimum data taken from the comprehensive, standard library given by Surjanovic and Bingham (Surjanovic and Bingham, <xref ref-type="bibr" rid="j_infor635_ref_029">2013</xref>): <uri>https://www.sfu.ca/~ssurjano/optimization.html</uri>. The source code of the ZFO algorithm together with all benchmark test functions needed for full reproducibility is publicly available at (Suruthi and Ganesh, <xref ref-type="bibr" rid="j_infor635_ref_030">2026</xref>): <uri>https://github.com/suruthi-m/Zebr-Fish-Optimization.git</uri>.</p>
<p>All experiments were run on three different configurations of population size, number of operations and stopping condition. Each test problem instance ran over multiple runs to average out the random variations between runs and allow a better comparison between the solutions. Performance statistics of the fitness values produced over each benchmark include the minimum fitness achieved, the average and standard deviation of all of the fitness values computed over all the runs. The performance statistics will serve as a detailed basis for the examination of the advantages and disadvantages of the new ZFO algorithm and to produce well-justified comparisons with other optimisers within the discussion section.</p>
</sec>
<sec id="j_infor635_s_019">
<label>3.2</label>
<title>Comparison of ZFO with Some State-of-the-Art Algorithm Metaheuristic Algorithms</title>
<p>The Zebrafish Optimization (ZFO) Algorithm was evaluated with different state-of-the-art Meta-Heuristic Algorithms, including the Cuttlefish Optimization Algorithm (CFO), Jellyfish Search Optimizer (JSO), Pufferfish Optimization Algorithm (POA) and the Krill Herd Optimizer (KHO). Cuttlefish are aquatic animals that change their colour based on their environment, enabling them to camouflage themselves effectively, which makes the use of cuttlefish for optimization extremely effective. The Cuttlefish Optimization Algorithm (CFO), which is based on the colour-changing capabilities of cuttlefish, predominantly relies on the process of reflection and visibility operations to balance between exploration and exploitation of solution spaces. Although CFO has a strong capability for global exploration during the initial phase of each search, its capability to exploit locally optimal solutions tends to diminish in highly multimodal landscapes as a result of continually switching between exploration and exploitation phases. The Jellyfish Search Optimizer (JSO) mimics jellyfish move due to current influences and swarm behaviour. JSO employs both passive and active movement to properly explore the search space. JSO’s performance can decline in late iterations due to not providing adequate exposure pressure. The Pufferfish Optimization Algorithm (POA) is based on the defensive and adaptive behaviours of pufferfish. POA has a high level of diversity, but due to the nature of the landscape it may experience oscillations in convergence to the optimum location. The Krill Herd Optimizer (KHO) uses how krill herd together and includes induced movement of individuals, foraging activity and physical movement around space (diffusion). KHO allows for continued diversity within the population, but due to multiple operators that interact, computing the optimum using KHO can increase its complexity. The parameter settings used for all benchmark problems are detailed in Table <xref rid="j_infor635_tab_001">1</xref>. These are control parameters and were found empirically and set at the same values for all problems to maintain fairness in comparison and ensure reproducibility.</p>
<table-wrap id="j_infor635_tab_001">
<label>Table 1</label>
<caption>
<p>Parameter configuration for the Proposed Zebrafish Optimization Algorithm.</p>
</caption>
<table>
<thead>
<tr>
<td style="vertical-align: top; text-align: left; border-top: solid thin; border-bottom: solid thin">Parameter</td>
<td style="vertical-align: top; text-align: left; border-top: solid thin; border-bottom: solid thin">Symbol</td>
<td style="vertical-align: top; text-align: left; border-top: solid thin; border-bottom: solid thin">Value/Formula</td>
<td style="vertical-align: top; text-align: left; border-top: solid thin; border-bottom: solid thin">Description</td>
</tr>
</thead>
<tbody>
<tr>
<td style="vertical-align: top; text-align: left">Population size</td>
<td style="vertical-align: top; text-align: left"><italic>N</italic></td>
<td style="vertical-align: top; text-align: left">30</td>
<td style="vertical-align: top; text-align: left">Number of Candidate Agents for the Zebrafish. It is set to 30–50.</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left">Max iterations</td>
<td style="vertical-align: top; text-align: left"><italic>T</italic></td>
<td style="vertical-align: top; text-align: left"><inline-formula id="j_infor635_ineq_062"><alternatives><mml:math>
<mml:mn>500</mml:mn>
<mml:mo mathvariant="normal" stretchy="false">/</mml:mo>
<mml:mn>1000</mml:mn></mml:math><tex-math><![CDATA[$500/1000$]]></tex-math></alternatives></inline-formula></td>
<td style="vertical-align: top; text-align: left">Max number of iterations</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left">Search dimension</td>
<td style="vertical-align: top; text-align: left"><italic>d</italic></td>
<td style="vertical-align: top; text-align: left"><inline-formula id="j_infor635_ineq_063"><alternatives><mml:math>
<mml:mtext mathvariant="italic">Problem-dependent</mml:mtext></mml:math><tex-math><![CDATA[$\textit{Problem-dependent}$]]></tex-math></alternatives></inline-formula></td>
<td style="vertical-align: top; text-align: left">Dimensions of search space</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left">Max exploration step</td>
<td style="vertical-align: top; text-align: left"><inline-formula id="j_infor635_ineq_064"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">α</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo movablelimits="false">max</mml:mo>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\alpha _{\max }}$]]></tex-math></alternatives></inline-formula></td>
<td style="vertical-align: top; text-align: left"><inline-formula id="j_infor635_ineq_065"><alternatives><mml:math>
<mml:mn>0.3</mml:mn>
<mml:mo>×</mml:mo>
<mml:mtext>range</mml:mtext></mml:math><tex-math><![CDATA[$0.3\times \text{range}$]]></tex-math></alternatives></inline-formula></td>
<td style="vertical-align: top; text-align: left">Exploration step size max (<inline-formula id="j_infor635_ineq_066"><alternatives><mml:math>
<mml:mi mathvariant="italic">l</mml:mi>
<mml:mi mathvariant="italic">b</mml:mi></mml:math><tex-math><![CDATA[$lb$]]></tex-math></alternatives></inline-formula>, <inline-formula id="j_infor635_ineq_067"><alternatives><mml:math>
<mml:mi mathvariant="italic">u</mml:mi>
<mml:mi mathvariant="italic">b</mml:mi></mml:math><tex-math><![CDATA[$ub$]]></tex-math></alternatives></inline-formula>)</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left">Min exploration step</td>
<td style="vertical-align: top; text-align: left"><inline-formula id="j_infor635_ineq_068"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">α</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo movablelimits="false">min</mml:mo>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\alpha _{\min }}$]]></tex-math></alternatives></inline-formula></td>
<td style="vertical-align: top; text-align: left"><inline-formula id="j_infor635_ineq_069"><alternatives><mml:math>
<mml:mn>0.05</mml:mn>
<mml:mo>×</mml:mo>
<mml:mtext>range</mml:mtext></mml:math><tex-math><![CDATA[$0.05\times \text{range}$]]></tex-math></alternatives></inline-formula></td>
<td style="vertical-align: top; text-align: left">Exploration step size min</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left">Fairness weight (explore)</td>
<td style="vertical-align: top; text-align: left"><inline-formula id="j_infor635_ineq_070"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">w</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="normal">e</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${w_{\mathrm{e}}}$]]></tex-math></alternatives></inline-formula></td>
<td style="vertical-align: top; text-align: left">1.0</td>
<td style="vertical-align: top; text-align: left">Multiplier of fairness factor during exploration of step sizes</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left">Separation weight</td>
<td style="vertical-align: top; text-align: left"><italic>γ</italic></td>
<td style="vertical-align: top; text-align: left"><inline-formula id="j_infor635_ineq_071"><alternatives><mml:math>
<mml:mn>0.5</mml:mn>
<mml:mo>×</mml:mo>
<mml:mi mathvariant="italic">β</mml:mi></mml:math><tex-math><![CDATA[$0.5\times \beta $]]></tex-math></alternatives></inline-formula> (<inline-formula id="j_infor635_ineq_072"><alternatives><mml:math>
<mml:mo stretchy="false">≈</mml:mo>
<mml:mn>0.05</mml:mn>
<mml:mo>×</mml:mo>
<mml:mtext>range</mml:mtext></mml:math><tex-math><![CDATA[$\approx 0.05\times \text{range}$]]></tex-math></alternatives></inline-formula>)</td>
<td style="vertical-align: top; text-align: left">Repulsion/separation coefficient applied to <inline-formula id="j_infor635_ineq_073"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">S</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${S_{i}}$]]></tex-math></alternatives></inline-formula> in the shoaling update, set as half the shoaling attraction step</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left">Shoaling base step</td>
<td style="vertical-align: top; text-align: left"><italic>β</italic></td>
<td style="vertical-align: top; text-align: left"><inline-formula id="j_infor635_ineq_074"><alternatives><mml:math>
<mml:mn>0.1</mml:mn>
<mml:mo>×</mml:mo>
<mml:mtext>range</mml:mtext></mml:math><tex-math><![CDATA[$0.1\times \text{range}$]]></tex-math></alternatives></inline-formula></td>
<td style="vertical-align: top; text-align: left">Attraction rate of the shoal centroid in movement during shoaling</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left">Shoaling noise</td>
<td style="vertical-align: top; text-align: left"><inline-formula id="j_infor635_ineq_075"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">δ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">s</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\delta _{s}}$]]></tex-math></alternatives></inline-formula></td>
<td style="vertical-align: top; text-align: left">0.05</td>
<td style="vertical-align: top; text-align: left">Stochastic component during shoaling movement</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left">Neighbourhood size</td>
<td style="vertical-align: top; text-align: left"><italic>k</italic></td>
<td style="vertical-align: top; text-align: left"><inline-formula id="j_infor635_ineq_076"><alternatives><mml:math>
<mml:mo movablelimits="false">max</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mtext>round</mml:mtext>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msqrt>
<mml:mrow>
<mml:mi mathvariant="italic">N</mml:mi>
</mml:mrow>
</mml:msqrt>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$\max (2,\text{round}(\sqrt{N}))$]]></tex-math></alternatives></inline-formula></td>
<td style="vertical-align: top; text-align: left">Number of closest neighbours for local centroid movement</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left">Hunting base step</td>
<td style="vertical-align: top; text-align: left"><italic>η</italic></td>
<td style="vertical-align: top; text-align: left"><inline-formula id="j_infor635_ineq_077"><alternatives><mml:math>
<mml:mn>0.15</mml:mn>
<mml:mo>×</mml:mo>
<mml:mtext>range</mml:mtext></mml:math><tex-math><![CDATA[$0.15\times \text{range}$]]></tex-math></alternatives></inline-formula></td>
<td style="vertical-align: top; text-align: left">Attraction rate of prey in the movement of the hunter</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left">Hunting noise</td>
<td style="vertical-align: top; text-align: left"><italic>ξ</italic></td>
<td style="vertical-align: top; text-align: left">0.02</td>
<td style="vertical-align: top; text-align: left">Stochastic component during hunter movement</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left">Fairness weight (hunt)</td>
<td style="vertical-align: top; text-align: left"><inline-formula id="j_infor635_ineq_078"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">w</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="normal">h</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${w_{\mathrm{h}}}$]]></tex-math></alternatives></inline-formula></td>
<td style="vertical-align: top; text-align: left">0.5</td>
<td style="vertical-align: top; text-align: left">Multiplier of fairness factor during hunting of step sizes</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left">Global weight (hunting)</td>
<td style="vertical-align: top; text-align: left"><inline-formula id="j_infor635_ineq_079"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">w</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">g</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${w_{g}}$]]></tex-math></alternatives></inline-formula></td>
<td style="vertical-align: top; text-align: left"><inline-formula id="j_infor635_ineq_080"><alternatives><mml:math>
<mml:mn>0.5</mml:mn>
<mml:mo>+</mml:mo>
<mml:mn>0.5</mml:mn>
<mml:mi mathvariant="italic">τ</mml:mi></mml:math><tex-math><![CDATA[$0.5+0.5\tau $]]></tex-math></alternatives></inline-formula></td>
<td style="vertical-align: top; text-align: left">Time variant influence between global search direction and local hunter movements</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left">Exploration probability</td>
<td style="vertical-align: top; text-align: left"><inline-formula id="j_infor635_ineq_081"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mtext>explore</mml:mtext>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${P_{\text{explore}}}$]]></tex-math></alternatives></inline-formula></td>
<td style="vertical-align: top; text-align: left"><inline-formula id="j_infor635_ineq_082"><alternatives><mml:math>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo>−</mml:mo>
<mml:mi mathvariant="italic">τ</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>+</mml:mo>
<mml:mn>0.5</mml:mn>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ϕ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[$(1-\tau )+0.5{\phi _{i}}$]]></tex-math></alternatives></inline-formula></td>
<td style="vertical-align: top; text-align: left">Probability of entering in to an exploratory movement</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left">Hunting probability</td>
<td style="vertical-align: top; text-align: left"><inline-formula id="j_infor635_ineq_083"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mtext>hunt</mml:mtext>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${P_{\text{hunt}}}$]]></tex-math></alternatives></inline-formula></td>
<td style="vertical-align: top; text-align: left"><inline-formula id="j_infor635_ineq_084"><alternatives><mml:math>
<mml:mi mathvariant="italic">τ</mml:mi>
<mml:mo>+</mml:mo>
<mml:mn>0.3</mml:mn>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ϕ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[$\tau +0.3{\phi _{i}}$]]></tex-math></alternatives></inline-formula></td>
<td style="vertical-align: top; text-align: left">Probability of hunting behaviour for a certain agent in the step of an iteration</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left">Shoaling probability</td>
<td style="vertical-align: top; text-align: left"><inline-formula id="j_infor635_ineq_085"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="normal">shoal</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${P_{\mathrm{shoal}}}$]]></tex-math></alternatives></inline-formula></td>
<td style="vertical-align: top; text-align: left"><inline-formula id="j_infor635_ineq_086"><alternatives><mml:math>
<mml:mn>1</mml:mn>
<mml:mo>−</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mtext>explore</mml:mtext>
</mml:mrow>
</mml:msub>
<mml:mo>+</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mtext>hunt</mml:mtext>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$1-({P_{\text{explore}}}+{P_{\text{hunt}}})$]]></tex-math></alternatives></inline-formula></td>
<td style="vertical-align: top; text-align: left">Probability of shoaling behaviour for a certain agent in the step of an iteration</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left">Stagnation threshold</td>
<td style="vertical-align: top; text-align: left"><inline-formula id="j_infor635_ineq_087"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">S</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
<mml:mi mathvariant="italic">h</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${S_{th}}$]]></tex-math></alternatives></inline-formula></td>
<td style="vertical-align: top; text-align: left"><inline-formula id="j_infor635_ineq_088"><alternatives><mml:math>
<mml:mo movablelimits="false">max</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>3</mml:mn>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mtext>round</mml:mtext>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>0.05</mml:mn>
<mml:mo>×</mml:mo>
<mml:mi mathvariant="italic">T</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$\max (3,\text{round}(0.05\times T))$]]></tex-math></alternatives></inline-formula></td>
<td style="vertical-align: top; text-align: left">Consecutive steps without improvement before a forced re-start</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left">Fairness factor</td>
<td style="vertical-align: top; text-align: left"><inline-formula id="j_infor635_ineq_089"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ϕ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\phi _{i}}$]]></tex-math></alternatives></inline-formula></td>
<td style="vertical-align: top; text-align: left"><inline-formula id="j_infor635_ineq_090"><alternatives><mml:math>
<mml:mo movablelimits="false">max</mml:mo>
<mml:mo maxsize="1.19em" minsize="1.19em" fence="true" mathvariant="normal">(</mml:mo>
<mml:mn>0</mml:mn>
<mml:mo mathvariant="normal">,</mml:mo><mml:mstyle displaystyle="false">
<mml:mfrac>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">F</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="normal">median</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>−</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">F</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="normal">best</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>+</mml:mo>
<mml:mi mathvariant="italic">ε</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">F</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>−</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">F</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="normal">best</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfrac>
</mml:mstyle>
<mml:mo maxsize="1.19em" minsize="1.19em" fence="true" mathvariant="normal">)</mml:mo></mml:math><tex-math><![CDATA[$\max \big(0,\frac{{F_{\mathrm{median}}}-{F_{\mathrm{best}}}+\varepsilon }{{F_{i}}-{F_{\mathrm{best}}}}\big)$]]></tex-math></alternatives></inline-formula></td>
<td style="vertical-align: top; text-align: left">Fairness weight function based on agent fitness [<italic>i</italic> is index of the agent, the best one gets <inline-formula id="j_infor635_ineq_091"><alternatives><mml:math>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>0</mml:mn></mml:math><tex-math><![CDATA[$i=0$]]></tex-math></alternatives></inline-formula>]</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">Normalised time</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin"><italic>τ</italic></td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin"><inline-formula id="j_infor635_ineq_092"><alternatives><mml:math><mml:mstyle displaystyle="false">
<mml:mfrac>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">T</mml:mi>
</mml:mrow>
</mml:mfrac>
</mml:mstyle></mml:math><tex-math><![CDATA[$\frac{t}{T}$]]></tex-math></alternatives></inline-formula></td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">Progress over time of algorithm execution from 0 to 1</td>
</tr>
</tbody>
</table>
</table-wrap>
</sec>
<sec id="j_infor635_s_020">
<label>3.3</label>
<title>Qualitative Analysis</title>
<p>ZFO performs can be viewed qualitatively from the Search history, Search path and Convergence charts in Figs. <xref rid="j_infor635_fig_004">3</xref>, <xref rid="j_infor635_fig_006">4</xref> and <xref rid="j_infor635_fig_007">5</xref>. As shown in the search history chart, candidate solutions at the start of the optimization process are found over a large area of the solution space, indicating an excellent exploratory capacity, as well as their ability to cover/locate areas not previously searched. As the optimization process continues, candidate solutions cluster around identified promising solution areas, indicating a successful movement from Exploration to Exploitation. The search path chart exhibits the direction of movement of the best zebrafish toward the global optimum. This movement illustrates how effective the Hunting and Shoaling mechanisms direct the search process. Also, the Convergence curve exhibits a rapid decline in fitness from the start of the optimization process to the end of the optimization process, while the trend of average fitness confirms that there is consistent population-level convergence of candidate solutions toward the extremely competitive global optimum for the benchmark function. As shown, ZFO maintains a diverse population while achieving steady and reliable convergence to the benchmark function.</p>
<fig id="j_infor635_fig_004">
<label>Fig. 3</label>
<caption>
<p>Qualitative results of F1 to F7 ZFO on unimodal benchmark functions.</p>
</caption>
<graphic xlink:href="infor635_g004.jpg"/>
</fig>
<fig id="j_infor635_fig_005">
<label>Fig. 3</label>
<caption>
<p>(<italic>continued</italic>)</p>
</caption>
<graphic xlink:href="infor635_g005.jpg"/>
</fig>
<fig id="j_infor635_fig_006">
<label>Fig. 4</label>
<caption>
<p>Qualitative results of F8 to F13 ZFO on multimodal benchmark functions.</p>
</caption>
<graphic xlink:href="infor635_g006.jpg"/>
</fig>
<fig id="j_infor635_fig_007">
<label>Fig. 5</label>
<caption>
<p>Qualitative results of F14 to F23 ZFO on fixed dimension multimodal benchmark functions.</p>
</caption>
<graphic xlink:href="infor635_g007.jpg"/>
</fig>
<fig id="j_infor635_fig_008">
<label>Fig. 5</label>
<caption>
<p>(<italic>continued</italic>)</p>
</caption>
<graphic xlink:href="infor635_g008.jpg"/>
</fig>
</sec>
<sec id="j_infor635_s_021">
<label>3.4</label>
<title>Performance Analysis and Mechanistic Analysis</title>
<p>In addition to providing evidence for the relative effectiveness of ZFO, this section seeks to explore at which problem instances and for which reasons the proposed ZFO model offers superior results in comparison to others. Emphasis is given to the individual role played by exploration, shoaling, hunting and stagnation detection and parameter adaptive mechanisms in establishing the optimal equilibrium between exploration and exploitation under varying scenarios.</p>
<sec id="j_infor635_s_022">
<label>3.4.1</label>
<title>Performance Analysis on Unimodal Benchmark Functions</title>
<p>The performance of the Zebrafish Optimization Algorithm (ZFO) was compared against four of the most recently developed metaheuristic algorithms (CUTTLE, JS, POA and KH) across seven unimodal benchmark functions (F1–F7). Table <xref rid="j_infor635_tab_002">2</xref> shows that the algorithms were tested under exactly the same conditions (50 separate trials with 500 iterations) and Table <xref rid="j_infor635_tab_003">3</xref> shows the algorithms were tested under exactly the same conditions (50 separate trials with 1000 iterations) and the best, average and standard deviation (STD) of each algorithm’s fitness score were captured. Figures <xref rid="j_infor635_fig_009">6</xref> and <xref rid="j_infor635_fig_010">7</xref> show the convergence behaviour of the algorithms (50 separate trials with 500 iterations and 50 separate trials with 1000 iterations) compared on the unimodal benchmark functions, which is shown along with their optimization dynamics across the iteration process.</p>
<p>ZFO consistently outperforms the other tested algorithms on all unimodal test functions. Specifically, ZFO has lower mean fitness values and lower standard deviation values, indicating excellent exploitation and convergence behaviour. ZFO’s low variability (i.e. low variance) in independent experimental runs also suggests that it can be relied upon to produce similar results regardless of the run.</p>
<p>For simpler unimodal functions like F1, F2 and F7, ZFO quickly approaches the global optimum and generates more accurate solutions than those created by CUTTLE, JS, POA and KH. The ZFO Algorithm’s strength lies in its ability to perform intensive exploration of the more promising areas of the search space to find these points. The competing algorithms show higher mean errors and a greater spread, indicating they will take longer to converge and are more likely to find fewer optimum paths during their search process.</p>
<p>Additionally, for higher dimensional unimodal problems, ZFO continues to outperform the alternatives through its ability to honour the trade-off between encouraging movement toward the “optimal” solution while avoiding premature stagnation. The results for POA and CUTTLE were significantly poorer than ZFO, demonstrating relatively large mean fitness values and high standard deviations, indicating that they are less effective at exploiting the available resources within unimodal landscapes.</p>
<p>The extensive experiments with unimodal benchmark functions, the performance gained from using ZFO has been validated and is extremely effective, accurate and robust. ZFO is an extremely effective optimizer in terms of utilising its extreme capability for finding a singular, global optimum and is especially beneficial for solving optimization issues, including those with a singular optimizer.</p>
<table-wrap id="j_infor635_tab_002">
<label>Table 2</label>
<caption>
<p>Result for unimodal F1–F7 with 50 runs and 500 iterations.</p>
</caption>
<table>
<thead>
<tr>
<td style="vertical-align: top; text-align: left; border-top: solid thin">Function</td>
<td colspan="3" style="vertical-align: top; text-align: left; border-top: solid thin; border-bottom: solid thin">ZFO</td>
<td colspan="3" style="vertical-align: top; text-align: left; border-top: solid thin; border-bottom: solid thin">CUTTLE</td>
<td colspan="2" style="vertical-align: top; text-align: left; border-top: solid thin; border-bottom: solid thin">JS</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin"/>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">BEST</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">MEAN</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">STD</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">BEST</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">MEAN</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">STD</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">BEST</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">MEAN</td>
</tr>
</thead>
<tbody>
<tr>
<td style="vertical-align: top; text-align: left">F1</td>
<td style="vertical-align: top; text-align: left">9.98E+02</td>
<td style="vertical-align: top; text-align: left">1.23E+03</td>
<td style="vertical-align: top; text-align: left">1.38E+02</td>
<td style="vertical-align: top; text-align: left">2.62E+04</td>
<td style="vertical-align: top; text-align: left">3.32E+04</td>
<td style="vertical-align: top; text-align: left">2.53E+03</td>
<td style="vertical-align: top; text-align: left">5.02E+03</td>
<td style="vertical-align: top; text-align: left">1.03E+04</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left">F2</td>
<td style="vertical-align: top; text-align: left">1.81E+01</td>
<td style="vertical-align: top; text-align: left">2.28E+01</td>
<td style="vertical-align: top; text-align: left">2.21E+00</td>
<td style="vertical-align: top; text-align: left">2.49E+02</td>
<td style="vertical-align: top; text-align: left">3.89E+08</td>
<td style="vertical-align: top; text-align: left">1.17E+09</td>
<td style="vertical-align: top; text-align: left">4.19E+01</td>
<td style="vertical-align: top; text-align: left">5.88E+01</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left">F3</td>
<td style="vertical-align: top; text-align: left">6.75E+03</td>
<td style="vertical-align: top; text-align: left">1.31E+04</td>
<td style="vertical-align: top; text-align: left">2.99E+03</td>
<td style="vertical-align: top; text-align: left">5.04E+04</td>
<td style="vertical-align: top; text-align: left">7.90E+04</td>
<td style="vertical-align: top; text-align: left">8.32E+03</td>
<td style="vertical-align: top; text-align: left">6.70E+03</td>
<td style="vertical-align: top; text-align: left">1.76E+04</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left">F4</td>
<td style="vertical-align: top; text-align: left">1.65E+01</td>
<td style="vertical-align: top; text-align: left">2.78E+01</td>
<td style="vertical-align: top; text-align: left">4.64E+00</td>
<td style="vertical-align: top; text-align: left">6.52E+01</td>
<td style="vertical-align: top; text-align: left">7.58E+01</td>
<td style="vertical-align: top; text-align: left">4.04E+00</td>
<td style="vertical-align: top; text-align: left">2.39E+01</td>
<td style="vertical-align: top; text-align: left">3.58E+01</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left">F5</td>
<td style="vertical-align: top; text-align: left">5.60E+04</td>
<td style="vertical-align: top; text-align: left">9.35E+04</td>
<td style="vertical-align: top; text-align: left">2.30E+04</td>
<td style="vertical-align: top; text-align: left">3.44E+07</td>
<td style="vertical-align: top; text-align: left">5.39E+07</td>
<td style="vertical-align: top; text-align: left">8.57E+06</td>
<td style="vertical-align: top; text-align: left">1.64E+06</td>
<td style="vertical-align: top; text-align: left">5.33E+06</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left">F6</td>
<td style="vertical-align: top; text-align: left">9.85E+02</td>
<td style="vertical-align: top; text-align: left">1.23E+03</td>
<td style="vertical-align: top; text-align: left">1.33E+02</td>
<td style="vertical-align: top; text-align: left">2.06E+04</td>
<td style="vertical-align: top; text-align: left">3.19E+04</td>
<td style="vertical-align: top; text-align: left">2.81E+03</td>
<td style="vertical-align: top; text-align: left">5.65E+03</td>
<td style="vertical-align: top; text-align: left">1.09E+04</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">F7</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">1.89E−01</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">3.47E−01</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">8.95E−02</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">2.71E+01</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">4.14E−01</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">7.15E+00</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">1.36E+00</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">3.73E+00</td>
</tr>
</tbody>
</table>
<table>
<thead>
<tr>
<td style="vertical-align: top; text-align: left; border-top: solid thin">Function</td>
<td colspan="3" style="vertical-align: top; text-align: left; border-top: solid thin; border-bottom: solid thin">POA</td>
<td colspan="3" style="vertical-align: top; text-align: left; border-top: solid thin; border-bottom: solid thin">KH</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin"/>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">STD</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">BEST</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">MEAN</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">STD</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">BEST</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">MEAN</td>
</tr>
</thead>
<tbody>
<tr>
<td style="vertical-align: top; text-align: left">F1</td>
<td style="vertical-align: top; text-align: left">2.43E+03</td>
<td style="vertical-align: top; text-align: left">3.91E+04</td>
<td style="vertical-align: top; text-align: left">5.30E+04</td>
<td style="vertical-align: top; text-align: left">4.77E+03</td>
<td style="vertical-align: top; text-align: left">1.35E+04</td>
<td style="vertical-align: top; text-align: left">3.14E+04</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left">F2</td>
<td style="vertical-align: top; text-align: left">8.51E+00</td>
<td style="vertical-align: top; text-align: left">1.28E+05</td>
<td style="vertical-align: top; text-align: left">4.13E+11</td>
<td style="vertical-align: top; text-align: left">1.95E+12</td>
<td style="vertical-align: top; text-align: left">3.18E+01</td>
<td style="vertical-align: top; text-align: left">4.56E+01</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left">F3</td>
<td style="vertical-align: top; text-align: left">5.73E+03</td>
<td style="vertical-align: top; text-align: left">7.31E+04</td>
<td style="vertical-align: top; text-align: left">9.91E+04</td>
<td style="vertical-align: top; text-align: left">1.05E+04</td>
<td style="vertical-align: top; text-align: left">5.14E+03</td>
<td style="vertical-align: top; text-align: left">1.02E+04</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left">F4</td>
<td style="vertical-align: top; text-align: left">3.99E+00</td>
<td style="vertical-align: top; text-align: left">7.12E+01</td>
<td style="vertical-align: top; text-align: left">7.89E+01</td>
<td style="vertical-align: top; text-align: left">2.82E+00</td>
<td style="vertical-align: top; text-align: left">5.77E+01</td>
<td style="vertical-align: top; text-align: left">7.38E+01</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left">F5</td>
<td style="vertical-align: top; text-align: left">2.30E+06</td>
<td style="vertical-align: top; text-align: left">7.97E+07</td>
<td style="vertical-align: top; text-align: left">1.23E+08</td>
<td style="vertical-align: top; text-align: left">2.51E+07</td>
<td style="vertical-align: top; text-align: left">1.15E+06</td>
<td style="vertical-align: top; text-align: left">8.23E+06</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left">F6</td>
<td style="vertical-align: top; text-align: left">2.65E+03</td>
<td style="vertical-align: top; text-align: left">3.67E+04</td>
<td style="vertical-align: top; text-align: left">5.18E+04</td>
<td style="vertical-align: top; text-align: left">5.77E+03</td>
<td style="vertical-align: top; text-align: left">1.32E+04</td>
<td style="vertical-align: top; text-align: left">2.84E+04</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">F7</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">1.43E+00</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">5.22E+01</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">8.86E+01</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">1.68E+01</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">7.01E−02</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">2.39E−01</td>
</tr>
</tbody>
</table>
</table-wrap>
<fig id="j_infor635_fig_009">
<label>Fig. 6</label>
<caption>
<p>Convergence curve for unimodal F1–F7 with 50 runs and 500 iterations.</p>
</caption>
<graphic xlink:href="infor635_g009.jpg"/>
</fig>
<table-wrap id="j_infor635_tab_003">
<label>Table 3</label>
<caption>
<p>Result for unimodal F1–F7 with 50 runs and 1000 iterations.</p>
</caption>
<table>
<thead>
<tr>
<td style="vertical-align: top; text-align: left; border-top: solid thin">Function</td>
<td colspan="3" style="vertical-align: top; text-align: left; border-top: solid thin; border-bottom: solid thin">ZFO</td>
<td colspan="3" style="vertical-align: top; text-align: left; border-top: solid thin; border-bottom: solid thin">CUTTLE</td>
<td colspan="3" style="vertical-align: top; text-align: left; border-top: solid thin; border-bottom: solid thin">JS</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin"/>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">BEST</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">MEAN</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">STD</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">BEST</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">MEAN</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">STD</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">BEST</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">MEAN</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">STD</td>
</tr>
</thead>
<tbody>
<tr>
<td style="vertical-align: top; text-align: left">F1</td>
<td style="vertical-align: top; text-align: left">7.39E+02</td>
<td style="vertical-align: top; text-align: left">1.04E+03</td>
<td style="vertical-align: top; text-align: left">1.13E+02</td>
<td style="vertical-align: top; text-align: left">2.11E+04</td>
<td style="vertical-align: top; text-align: left">2.57E+04</td>
<td style="vertical-align: top; text-align: left">1.77E+03</td>
<td style="vertical-align: top; text-align: left">3.20E+03</td>
<td style="vertical-align: top; text-align: left">1.05E+04</td>
<td style="vertical-align: top; text-align: left">2.27E+03</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left">F2</td>
<td style="vertical-align: top; text-align: left">1.72E+01</td>
<td style="vertical-align: top; text-align: left">2.45E+01</td>
<td style="vertical-align: top; text-align: left">2.43E+01</td>
<td style="vertical-align: top; text-align: left">1.37E+02</td>
<td style="vertical-align: top; text-align: left">1.76E+07</td>
<td style="vertical-align: top; text-align: left">5.05E+07</td>
<td style="vertical-align: top; text-align: left">4.03E+01</td>
<td style="vertical-align: top; text-align: left">5.99E+01</td>
<td style="vertical-align: top; text-align: left">8.46E+00</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left">F3</td>
<td style="vertical-align: top; text-align: left">5.93E+03</td>
<td style="vertical-align: top; text-align: left">9.86E+03</td>
<td style="vertical-align: top; text-align: left">1.85E+03</td>
<td style="vertical-align: top; text-align: left">5.82E+04</td>
<td style="vertical-align: top; text-align: left">6.99E+04</td>
<td style="vertical-align: top; text-align: left">5.64E+03</td>
<td style="vertical-align: top; text-align: left">7.46E+03</td>
<td style="vertical-align: top; text-align: left">1.88E+04</td>
<td style="vertical-align: top; text-align: left">5.74E+03</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left">F4</td>
<td style="vertical-align: top; text-align: left">1.48E+01</td>
<td style="vertical-align: top; text-align: left">2.13E+01</td>
<td style="vertical-align: top; text-align: left">4.70E+00</td>
<td style="vertical-align: top; text-align: left">5.77E+01</td>
<td style="vertical-align: top; text-align: left">7.01E+01</td>
<td style="vertical-align: top; text-align: left">4.82E+00</td>
<td style="vertical-align: top; text-align: left">2.24E+01</td>
<td style="vertical-align: top; text-align: left">3.35E+01</td>
<td style="vertical-align: top; text-align: left">3.80E+00</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left">F5</td>
<td style="vertical-align: top; text-align: left">3.73E+04</td>
<td style="vertical-align: top; text-align: left">6.50E+04</td>
<td style="vertical-align: top; text-align: left">1.60E+04</td>
<td style="vertical-align: top; text-align: left">2.20E+07</td>
<td style="vertical-align: top; text-align: left">3.49E+07</td>
<td style="vertical-align: top; text-align: left">4.85E+06</td>
<td style="vertical-align: top; text-align: left">1.54E+06</td>
<td style="vertical-align: top; text-align: left">4.83E+06</td>
<td style="vertical-align: top; text-align: left">2.16E+06</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left">F6</td>
<td style="vertical-align: top; text-align: left">8.00E+02</td>
<td style="vertical-align: top; text-align: left">1.03E+03</td>
<td style="vertical-align: top; text-align: left">1.09E+02</td>
<td style="vertical-align: top; text-align: left">2.15E+04</td>
<td style="vertical-align: top; text-align: left">2.56E+04</td>
<td style="vertical-align: top; text-align: left">1.84E+03</td>
<td style="vertical-align: top; text-align: left">5.05E+03</td>
<td style="vertical-align: top; text-align: left">1.03E+04</td>
<td style="vertical-align: top; text-align: left">2.48E+03</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">F7</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">1.07E−01</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">2.45E−01</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">7.13E−02</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">1.49E+01</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">2.61E+01</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">4.58E+00</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">5.89E−01</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">4.12E+00</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">1.86E+00</td>
</tr>
</tbody>
</table>
<table>
<thead>
<tr>
<td style="vertical-align: top; text-align: left; border-top: solid thin">Function</td>
<td colspan="3" style="vertical-align: top; text-align: left; border-top: solid thin; border-bottom: solid thin">POA</td>
<td colspan="3" style="vertical-align: top; text-align: left; border-top: solid thin; border-bottom: solid thin">KH</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin"/>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">BEST</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">MEAN</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">STD</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">BEST</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">MEAN</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">STD</td>
</tr>
</thead>
<tbody>
<tr>
<td style="vertical-align: top; text-align: left">F1</td>
<td style="vertical-align: top; text-align: left">2.06E+04</td>
<td style="vertical-align: top; text-align: left">3.11E+04</td>
<td style="vertical-align: top; text-align: left">3.72E+03</td>
<td style="vertical-align: top; text-align: left">1.42E+04</td>
<td style="vertical-align: top; text-align: left">3.00E+04</td>
<td style="vertical-align: top; text-align: left">1.04E+04</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left">F2</td>
<td style="vertical-align: top; text-align: left">1.54E+02</td>
<td style="vertical-align: top; text-align: left">1.42E+08</td>
<td style="vertical-align: top; text-align: left">5.22E+08</td>
<td style="vertical-align: top; text-align: left">3.25E+01</td>
<td style="vertical-align: top; text-align: left">4.55E+01</td>
<td style="vertical-align: top; text-align: left">4.96E+00</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left">F3</td>
<td style="vertical-align: top; text-align: left">6.56E+04</td>
<td style="vertical-align: top; text-align: left">7.92E+04</td>
<td style="vertical-align: top; text-align: left">6.65E+03</td>
<td style="vertical-align: top; text-align: left">4.31E+03</td>
<td style="vertical-align: top; text-align: left">9.74E+03</td>
<td style="vertical-align: top; text-align: left">5.22E+03</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left">F4</td>
<td style="vertical-align: top; text-align: left">6.84E+01</td>
<td style="vertical-align: top; text-align: left">7.41E+01</td>
<td style="vertical-align: top; text-align: left">2.67E+00</td>
<td style="vertical-align: top; text-align: left">4.16E+01</td>
<td style="vertical-align: top; text-align: left">7.22E+01</td>
<td style="vertical-align: top; text-align: left">1.01E+01</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left">F5</td>
<td style="vertical-align: top; text-align: left">2.92E+07</td>
<td style="vertical-align: top; text-align: left">5.36E+07</td>
<td style="vertical-align: top; text-align: left">1.06E+07</td>
<td style="vertical-align: top; text-align: left">1.17E+06</td>
<td style="vertical-align: top; text-align: left">5.73E+06</td>
<td style="vertical-align: top; text-align: left">4.99E+06</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left">F6</td>
<td style="vertical-align: top; text-align: left">2.28E+04</td>
<td style="vertical-align: top; text-align: left">3.14E+04</td>
<td style="vertical-align: top; text-align: left">3.85E+03</td>
<td style="vertical-align: top; text-align: left">1.57E+04</td>
<td style="vertical-align: top; text-align: left">3.01E+04</td>
<td style="vertical-align: top; text-align: left">8.91E+03</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">F7</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">2.37E+01</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">3.84E+01</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">6.91E+00</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">5.82E−02</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">1.43E−01</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">5.76E−02</td>
</tr>
</tbody>
</table>
</table-wrap>
<fig id="j_infor635_fig_010">
<label>Fig. 7</label>
<caption>
<p>Convergence curve for unimodal F1–F7 with 50 runs and 1000 iterations.</p>
</caption>
<graphic xlink:href="infor635_g010.jpg"/>
</fig>
</sec>
<sec id="j_infor635_s_023">
<label>3.4.2</label>
<title>Performance Analysis on Multimodal Benchmark Functions</title>
<p>A comparison between the ZFO algorithm and four other stochastic, multi-dimensional optimization methods is presented in Table <xref rid="j_infor635_tab_004">4</xref> and <xref rid="j_infor635_tab_005">5</xref>. All methods were applied in three levels of testing, consisting of the recommended number of trials (50 with 500 iterations and 50 with 1000 iterations). The trial results were compiled into tables including the best trial results, average results and standard deviations for all trial results obtained for each level of testing. Additionally, Figs. <xref rid="j_infor635_fig_011">8</xref> and <xref rid="j_infor635_fig_012">9</xref> show the convergence behaviour of the algorithms (50 separate trials with 500 iterations and 50 separate trials with 1000 iterations) compared on the multimodal benchmark functions, which is shown along with their optimization dynamics across the iteration process.</p>
<p>Data was collected across all run sizes and iteration limits to develop the ZFO algorithm’s ability to do better than, or at least as well as the benchmark algorithms. The results indicate that ZFO has superior exploration capability in the early stages of the search process and gradually increases its ability to exploit as the number of iterations increases. Through this process, ZFO is able to traverse multi-modal optimally and prevents a premature fall back into local optima.</p>
<p>As the number of runs increasing from 25 to 50, the performance of ZFO is more consistent with lower values of standard deviation over all multimodal functions. These results demonstrate the robustness and reliability of the proposed algorithm when subjected to diverse stochasticity. On the other hand, other proposed algorithms, such as POA and KH demonstrate a high degree of performance variability, indicating that they are more susceptible to differences in both initialization and search randomness.</p>
<p>Additionally, by increasing the number of iterations from 500 to 1000 iterations, a greater number of iterations will allow ZFO to refine the quality of its solutions beyond their current mean fitness value without compromising the stability of their convergence rates. The ability of the algorithm to scale up in terms of both the number of runs and the number of iterations demonstrates that the algorithm can effectively utilize more computer resources to improve the accuracy of its optimization results.</p>
<p>The results of the experiments conducted in multiple runs, iterations and other configurations validate the capability, dependability and capacity of ZFO to solve multimodal optimization problems. These experimental configurations provide a consistent performance improvement across all trial types and substantiate the validity of ZFO as an appropriate tool for dealing with complex, high dimensional optimization problems that are characterized by multiple local optima.</p>
<table-wrap id="j_infor635_tab_004">
<label>Table 4</label>
<caption>
<p>Result for multimodal F8–F13 with 50 runs and 500 iterations.</p>
</caption>
<table>
<thead>
<tr>
<td style="vertical-align: top; text-align: left; border-top: solid thin">Function</td>
<td colspan="3" style="vertical-align: top; text-align: left; border-top: solid thin; border-bottom: solid thin">ZFO</td>
<td colspan="3" style="vertical-align: top; text-align: left; border-top: solid thin; border-bottom: solid thin">CUTTLE</td>
<td colspan="3" style="vertical-align: top; text-align: left; border-top: solid thin; border-bottom: solid thin">JS</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin"/>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">BEST</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">MEAN</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">STD</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">BEST</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">MEAN</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">STD</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">BEST</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">MEAN</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">STD</td>
</tr>
</thead>
<tbody>
<tr>
<td style="vertical-align: top; text-align: left">F8</td>
<td style="vertical-align: top; text-align: left">−1.14E+04</td>
<td style="vertical-align: top; text-align: left">−9.30E+03</td>
<td style="vertical-align: top; text-align: left">9.13E+02</td>
<td style="vertical-align: top; text-align: left">−6.29E+03</td>
<td style="vertical-align: top; text-align: left">−5.54E+03</td>
<td style="vertical-align: top; text-align: left">2.98E+02</td>
<td style="vertical-align: top; text-align: left">−7.58E+03</td>
<td style="vertical-align: top; text-align: left">−5.84E+03</td>
<td style="vertical-align: top; text-align: left">7.26E+02</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left">F9</td>
<td style="vertical-align: top; text-align: left">3.21E+02</td>
<td style="vertical-align: top; text-align: left">3.88E+02</td>
<td style="vertical-align: top; text-align: left">3.01E+01</td>
<td style="vertical-align: top; text-align: left">5.43E+02</td>
<td style="vertical-align: top; text-align: left">5.84E+02</td>
<td style="vertical-align: top; text-align: left">2.11E+01</td>
<td style="vertical-align: top; text-align: left">2.43E+02</td>
<td style="vertical-align: top; text-align: left">2.99E+02</td>
<td style="vertical-align: top; text-align: left">2.52E+01</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left">F10</td>
<td style="vertical-align: top; text-align: left">6.73E+00</td>
<td style="vertical-align: top; text-align: left">7.47E+00</td>
<td style="vertical-align: top; text-align: left">4.10E−01</td>
<td style="vertical-align: top; text-align: left">1.76E+01</td>
<td style="vertical-align: top; text-align: left">1.86E+01</td>
<td style="vertical-align: top; text-align: left">3.27E−01</td>
<td style="vertical-align: top; text-align: left">1.11E+01</td>
<td style="vertical-align: top; text-align: left">1.33E+01</td>
<td style="vertical-align: top; text-align: left">7.60E−01</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left">F11</td>
<td style="vertical-align: top; text-align: left">8.74E+00</td>
<td style="vertical-align: top; text-align: left">1.19E+01</td>
<td style="vertical-align: top; text-align: left">1.32E+00</td>
<td style="vertical-align: top; text-align: left">2.22E+02</td>
<td style="vertical-align: top; text-align: left">2.95E+02</td>
<td style="vertical-align: top; text-align: left">3.20E+01</td>
<td style="vertical-align: top; text-align: left">5.41E+01</td>
<td style="vertical-align: top; text-align: left">9.53E+01</td>
<td style="vertical-align: top; text-align: left">2.09E+01</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left">F12</td>
<td style="vertical-align: top; text-align: left">7.98E+00</td>
<td style="vertical-align: top; text-align: left">1.07E+02</td>
<td style="vertical-align: top; text-align: left">4.71E+02</td>
<td style="vertical-align: top; text-align: left">3.08E+07</td>
<td style="vertical-align: top; text-align: left">7.41E+07</td>
<td style="vertical-align: top; text-align: left">2.50E+07</td>
<td style="vertical-align: top; text-align: left">1.51E+03</td>
<td style="vertical-align: top; text-align: left">5.50E+05</td>
<td style="vertical-align: top; text-align: left">5.71E+05</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">F13</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">1.53E+02</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">6.11E+03</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">1.00E+04</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">1.10E+08</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">2.08E+08</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">3.51E+07</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">5.36E+05</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">6.75E+06</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">5.17E+06</td>
</tr>
</tbody>
</table>
<table>
<thead>
<tr>
<td style="vertical-align: top; text-align: left; border-top: solid thin">Function</td>
<td colspan="3" style="vertical-align: top; text-align: left; border-top: solid thin; border-bottom: solid thin">POA</td>
<td colspan="3" style="vertical-align: top; text-align: left; border-top: solid thin; border-bottom: solid thin">KH</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin"/>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">BEST</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">MEAN</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">STD</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">BEST</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">MEAN</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">STD</td>
</tr>
</thead>
<tbody>
<tr>
<td style="vertical-align: top; text-align: left">F8</td>
<td style="vertical-align: top; text-align: left">−8.00E+03</td>
<td style="vertical-align: top; text-align: left">−6.49E+03</td>
<td style="vertical-align: top; text-align: left">5.36E+02</td>
<td style="vertical-align: top; text-align: left">−9.64E+03</td>
<td style="vertical-align: top; text-align: left">−9.29E+03</td>
<td style="vertical-align: top; text-align: left">2.73E+02</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left">F9</td>
<td style="vertical-align: top; text-align: left">5.64E+02</td>
<td style="vertical-align: top; text-align: left">6.16E+02</td>
<td style="vertical-align: top; text-align: left">2.28E+01</td>
<td style="vertical-align: top; text-align: left">1.89E+01</td>
<td style="vertical-align: top; text-align: left">4.46E+01</td>
<td style="vertical-align: top; text-align: left">1.64E+01</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left">F10</td>
<td style="vertical-align: top; text-align: left">2.01E+01</td>
<td style="vertical-align: top; text-align: left">2.02E+01</td>
<td style="vertical-align: top; text-align: left">4.39E−02</td>
<td style="vertical-align: top; text-align: left">1.18E+01</td>
<td style="vertical-align: top; text-align: left">1.44E+01</td>
<td style="vertical-align: top; text-align: left">1.35E+00</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left">F11</td>
<td style="vertical-align: top; text-align: left">3.65E+02</td>
<td style="vertical-align: top; text-align: left">4.75E+02</td>
<td style="vertical-align: top; text-align: left">5.11E+01</td>
<td style="vertical-align: top; text-align: left">3.03E+02</td>
<td style="vertical-align: top; text-align: left">7.87E+02</td>
<td style="vertical-align: top; text-align: left">2.56E+02</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left">F12</td>
<td style="vertical-align: top; text-align: left">8.04E+07</td>
<td style="vertical-align: top; text-align: left">2.11E+08</td>
<td style="vertical-align: top; text-align: left">4.62E+07</td>
<td style="vertical-align: top; text-align: left">2.25E+05</td>
<td style="vertical-align: top; text-align: left">7.64E+06</td>
<td style="vertical-align: top; text-align: left">1.21E+07</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">F13</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">2.66E+08</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">5.16E+08</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">1.07E+08</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">3.29E+06</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">3.71E+07</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">3.66E+07</td>
</tr>
</tbody>
</table>
</table-wrap>
<table-wrap id="j_infor635_tab_005">
<label>Table 5</label>
<caption>
<p>Result for multimodal F8–F13 with 50 runs and 1000 iterations.</p>
</caption>
<table>
<thead>
<tr>
<td style="vertical-align: top; text-align: left; border-top: solid thin">Function</td>
<td colspan="3" style="vertical-align: top; text-align: left; border-top: solid thin; border-bottom: solid thin">ZFO</td>
<td colspan="3" style="vertical-align: top; text-align: left; border-top: solid thin; border-bottom: solid thin">CUTTLE</td>
<td colspan="3" style="vertical-align: top; text-align: left; border-top: solid thin; border-bottom: solid thin">JS</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin"/>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">BEST</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">MEAN</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">STD</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">BEST</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">MEAN</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">STD</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">BEST</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">MEAN</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">STD</td>
</tr>
</thead>
<tbody>
<tr>
<td style="vertical-align: top; text-align: left">F8</td>
<td style="vertical-align: top; text-align: left">−1.17E+04</td>
<td style="vertical-align: top; text-align: left">−1.01E+04</td>
<td style="vertical-align: top; text-align: left">7.10E+02</td>
<td style="vertical-align: top; text-align: left">−7.41E+03</td>
<td style="vertical-align: top; text-align: left">−5.91E+03</td>
<td style="vertical-align: top; text-align: left">4.20E+02</td>
<td style="vertical-align: top; text-align: left">−7.93E+03</td>
<td style="vertical-align: top; text-align: left">−5.98E+03</td>
<td style="vertical-align: top; text-align: left">7.32E+02</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left">F9</td>
<td style="vertical-align: top; text-align: left">3.02E+02</td>
<td style="vertical-align: top; text-align: left">3.74E+02</td>
<td style="vertical-align: top; text-align: left">3.44E+01</td>
<td style="vertical-align: top; text-align: left">4.91E+02</td>
<td style="vertical-align: top; text-align: left">5.68E+02</td>
<td style="vertical-align: top; text-align: left">2.14E+01</td>
<td style="vertical-align: top; text-align: left">2.23E+02</td>
<td style="vertical-align: top; text-align: left">2.82E+02</td>
<td style="vertical-align: top; text-align: left">2.54E+01</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left">F10</td>
<td style="vertical-align: top; text-align: left">6.42E+00</td>
<td style="vertical-align: top; text-align: left">6.94E+00</td>
<td style="vertical-align: top; text-align: left">2.56E−01</td>
<td style="vertical-align: top; text-align: left">1.72E+01</td>
<td style="vertical-align: top; text-align: left">1.78E+01</td>
<td style="vertical-align: top; text-align: left">2.55E−01</td>
<td style="vertical-align: top; text-align: left">1.17E+01</td>
<td style="vertical-align: top; text-align: left">1.35E+01</td>
<td style="vertical-align: top; text-align: left">8.38E−01</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left">F11</td>
<td style="vertical-align: top; text-align: left">8.35E+00</td>
<td style="vertical-align: top; text-align: left">1.00E+01</td>
<td style="vertical-align: top; text-align: left">9.54E−01</td>
<td style="vertical-align: top; text-align: left">1.96E+02</td>
<td style="vertical-align: top; text-align: left">2.33E+02</td>
<td style="vertical-align: top; text-align: left">1.62E+01</td>
<td style="vertical-align: top; text-align: left">6.02E+01</td>
<td style="vertical-align: top; text-align: left">9.38E+01</td>
<td style="vertical-align: top; text-align: left">1.88E+01</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left">F12</td>
<td style="vertical-align: top; text-align: left">8.15E+00</td>
<td style="vertical-align: top; text-align: left">1.58E+01</td>
<td style="vertical-align: top; text-align: left">5.57E+00</td>
<td style="vertical-align: top; text-align: left">1.58E+07</td>
<td style="vertical-align: top; text-align: left">3.61E+07</td>
<td style="vertical-align: top; text-align: left">1.10E+07</td>
<td style="vertical-align: top; text-align: left">2.46E+03</td>
<td style="vertical-align: top; text-align: left">4.73E+05</td>
<td style="vertical-align: top; text-align: left">4.47E+05</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">F13</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">6.55E+01</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">1.91E+03</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">4.44E+03</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">3.45E+07</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">1.12E+08</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">2.66E+07</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">1.13E+06</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">8.29E+06</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">6.58E+06</td>
</tr>
</tbody>
</table>
<table>
<thead>
<tr>
<td style="vertical-align: top; text-align: left; border-top: solid thin">Function</td>
<td colspan="3" style="vertical-align: top; text-align: left; border-top: solid thin; border-bottom: solid thin">POA</td>
<td colspan="3" style="vertical-align: top; text-align: left; border-top: solid thin; border-bottom: solid thin">KH</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin"/>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">BEST</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">MEAN</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">STD</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">BEST</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">MEAN</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">STD</td>
</tr>
</thead>
<tbody>
<tr>
<td style="vertical-align: top; text-align: left">F8</td>
<td style="vertical-align: top; text-align: left">−9.03E+03</td>
<td style="vertical-align: top; text-align: left">−7.11E+03</td>
<td style="vertical-align: top; text-align: left">5.12E+02</td>
<td style="vertical-align: top; text-align: left">−9.62E+03</td>
<td style="vertical-align: top; text-align: left">−9.33E+03</td>
<td style="vertical-align: top; text-align: left">1.13E+02</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left">F9</td>
<td style="vertical-align: top; text-align: left">5.01E+02</td>
<td style="vertical-align: top; text-align: left">5.75E+02</td>
<td style="vertical-align: top; text-align: left">2.54E+01</td>
<td style="vertical-align: top; text-align: left">2.09E+01</td>
<td style="vertical-align: top; text-align: left">4.35E+01</td>
<td style="vertical-align: top; text-align: left">1.58E+01</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left">F10</td>
<td style="vertical-align: top; text-align: left">2.00E+01</td>
<td style="vertical-align: top; text-align: left">2.01E+01</td>
<td style="vertical-align: top; text-align: left">3.64E−02</td>
<td style="vertical-align: top; text-align: left">9.71E+00</td>
<td style="vertical-align: top; text-align: left">1.40E+01</td>
<td style="vertical-align: top; text-align: left">1.35E+00</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left">F11</td>
<td style="vertical-align: top; text-align: left">2.15E+02</td>
<td style="vertical-align: top; text-align: left">2.85E+02</td>
<td style="vertical-align: top; text-align: left">3.52E+01</td>
<td style="vertical-align: top; text-align: left">4.25E+02</td>
<td style="vertical-align: top; text-align: left">8.15E+02</td>
<td style="vertical-align: top; text-align: left">1.56E+02</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left">F12</td>
<td style="vertical-align: top; text-align: left">8.55E+06</td>
<td style="vertical-align: top; text-align: left">6.30E+07</td>
<td style="vertical-align: top; text-align: left">2.22E+07</td>
<td style="vertical-align: top; text-align: left">4.41E+04</td>
<td style="vertical-align: top; text-align: left">4.86E+06</td>
<td style="vertical-align: top; text-align: left">5.16E+06</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">F13</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">8.70E+07</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">1.71E+08</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">4.23E+07</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">3.41E+06</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">2.92E+07</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">4.27E+07</td>
</tr>
</tbody>
</table>
</table-wrap>
<fig id="j_infor635_fig_011">
<label>Fig. 8</label>
<caption>
<p>Convergence curve for multimodal F8–F13 with 50 runs and 500 iterations.</p>
</caption>
<graphic xlink:href="infor635_g011.jpg"/>
</fig>
<fig id="j_infor635_fig_012">
<label>Fig. 9</label>
<caption>
<p>Convergence curve for multimodal F8–F13 with 50 runs and 1000 iterations.</p>
</caption>
<graphic xlink:href="infor635_g012.jpg"/>
</fig>
</sec>
<sec id="j_infor635_s_024">
<label>3.4.3</label>
<title>Performance Analysis on Fixed Dimension Multimodal Functions</title>
<p>The performance of ZFO is compared with CUTTLE, JS, POA and KH by evaluating each algorithm when solving benchmark functions that have several variables and are multimodal. These problems were carefully designed so that each has a fixed number of decision variables and represent very complex optimization problems because many of the variables have many local minima and they require very different exploitation strategies than traditional optimization problems. They provide an excellent means for testing an algorithm’s robustness, exploration capability and convergence properties.</p>
<p>To allow for a fair and statistically significant comparison between the algorithms through multiple experiments, the following factors were taken into account: the number of independent runs per algorithm. Table <xref rid="j_infor635_tab_006">6</xref> and <xref rid="j_infor635_tab_007">7</xref> show the algorithms were tested under exactly the same conditions (50 separate trials with 500 iterations and 50 separate trials with 1000 iterations). After completing the experiments for each of these variations, the algorithms’ real-time fitness values were analysed based on: best fitness value, mean fitness value and standard deviation (STD) for each configuration. Additionally, Figs. <xref rid="j_infor635_fig_013">10</xref> and <xref rid="j_infor635_fig_014">11</xref> show the convergence behaviour of the algorithms (50 separate trials with 500 iterations and 50 separate trials with 1000 iterations) compared on the fixed dimensional multimodal benchmark functions, which is shown along with their optimization dynamics across the iteration process of 50. Each independent run was completed with 500 iterations or 1000 iterations.</p>
<p>ZFO performed better than any other algorithm for the entire fixed-dimensional multimodal function suite. More importantly, ZFO is consistently able to avoid the pitfalls of local optima while maintaining a diverse population. This is evidenced by ZFO’s lower and more consistent average fitness over repeated runs. Therefore, ZFO has effectively found a good balance between exploration and exploitation when operating in a multi-modal environment.</p>
<p>An increased run count of 50 demonstrated improved stability of ZFO as indicated by consistently lower standard deviation and it shows greater stability in the presence of stochastic variation. ZFO can further enhance the quality of the solution when run over 500–1000 iterations, improving convergence accuracy without negatively impacting stability.</p>
<p>In the search phase, POA and KH often substitute a restricted number of search patterns for a variety of fixed-dimensional multimodal functions, which causes premature convergence. On the other hand, compared to the other competing algorithms, the overall performance of CUTTLE and JS is more variable. In addition, evaluation shows that the new algorithm ZFO is better able to maintain diversities in the search process and provide steady convergence to high-quality solutions.</p>
<p>Overall, the experimentation has demonstrated that ZFO is a high-performance method for Fixed-Dimension Multimodal Optimization Problems due to its superior robustness, scalability and convergence reliability and that the increases in performance seen across various run sizes and iteration limits support ZFO’s efficacy with respect to the solution of difficult complex optimization problems characterized by rugged and deceptive search spaces.</p>
</sec>
</sec>
<sec id="j_infor635_s_025">
<label>3.5</label>
<title>Statistical Analysis</title>
<p>The performance of ZFO was rigorously validated through a statistical analysis of all four algorithms (Cuttle, JS, POA and KH) to compare the proposed ZFO proposal against other algorithms. Because metaheuristic algorithms operate by generating random outcomes, the results are non-normally distributed and do not meet the criteria for normality. Nonparametric statistical tests were the most effective way to evaluate the comparison and to provide a reliable, unbiased assessment of the performance of the algorithms.</p>
<sec id="j_infor635_s_026">
<label>3.5.1</label>
<title>Friedman Test</title>
<p>The Friedman test was conducted independently for each of the benchmark functions to test the algorithms’ abilities. The Friedman test was performed on three sets of data – the results of 25, 30 and 50 independent trials with 500 and 1000 iterations and a significance level of <inline-formula id="j_infor635_ineq_093"><alternatives><mml:math>
<mml:mi mathvariant="italic">α</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>0.05</mml:mn></mml:math><tex-math><![CDATA[$\alpha =0.05$]]></tex-math></alternatives></inline-formula>. The Friedman test provided mean rankings for the algorithms and the p-value associated with the mean. The results of the Friedman test showed ZFO had the lowest (and best) ranking among most unimodal and multimodal functions and fixed-dimensional multimodal functions. Additionally, the p-values generated by the Friedman test for many of the test functions indicated that the differences between the algorithms’ performance were statistically significant, thus indicating no random variability would account for the observed differences in performance.</p>
<table-wrap id="j_infor635_tab_006">
<label>Table 6</label>
<caption>
<p>Result for fixed dimension multimodal F14–F23 with 50 runs and 500 iterations.</p>
</caption>
<table>
<thead>
<tr>
<td style="vertical-align: top; text-align: left; border-top: solid thin">Function</td>
<td colspan="3" style="vertical-align: top; text-align: left; border-top: solid thin; border-bottom: solid thin">ZFO</td>
<td colspan="3" style="vertical-align: top; text-align: left; border-top: solid thin; border-bottom: solid thin">CUTTLE</td>
<td colspan="3" style="vertical-align: top; text-align: left; border-top: solid thin; border-bottom: solid thin">JS</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin"/>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">BEST</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">MEAN</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">STD</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">BEST</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">MEAN</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">STD</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">BEST</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">MEAN</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">STD</td>
</tr>
</thead>
<tbody>
<tr>
<td style="vertical-align: top; text-align: left">F14</td>
<td style="vertical-align: top; text-align: left">9.98E−01</td>
<td style="vertical-align: top; text-align: left">9.98E−01</td>
<td style="vertical-align: top; text-align: left">1.59E−04</td>
<td style="vertical-align: top; text-align: left">9.98E−01</td>
<td style="vertical-align: top; text-align: left">1.00E−00</td>
<td style="vertical-align: top; text-align: left">5.92E−03</td>
<td style="vertical-align: top; text-align: left">9.98E−01</td>
<td style="vertical-align: top; text-align: left">4.57E+00</td>
<td style="vertical-align: top; text-align: left">2.87E+00</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left">F15</td>
<td style="vertical-align: top; text-align: left">6.77E−04</td>
<td style="vertical-align: top; text-align: left">1.09E−03</td>
<td style="vertical-align: top; text-align: left">2.27E−04</td>
<td style="vertical-align: top; text-align: left">6.43E−04</td>
<td style="vertical-align: top; text-align: left">1.09E−03</td>
<td style="vertical-align: top; text-align: left">2.48E−04</td>
<td style="vertical-align: top; text-align: left">3.99E−04</td>
<td style="vertical-align: top; text-align: left">5.06E−03</td>
<td style="vertical-align: top; text-align: left">9.57E−03</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left">F16</td>
<td style="vertical-align: top; text-align: left">−1.03E+00</td>
<td style="vertical-align: top; text-align: left">−1.03E+00</td>
<td style="vertical-align: top; text-align: left">2.54E−04</td>
<td style="vertical-align: top; text-align: left">−1.03E+00</td>
<td style="vertical-align: top; text-align: left">−1.03E+00</td>
<td style="vertical-align: top; text-align: left">3.18E−04</td>
<td style="vertical-align: top; text-align: left">−1.03E+00</td>
<td style="vertical-align: top; text-align: left">−1.03E+00</td>
<td style="vertical-align: top; text-align: left">3.52E−04</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left">F17</td>
<td style="vertical-align: top; text-align: left">3.98E−01</td>
<td style="vertical-align: top; text-align: left">3.98E−01</td>
<td style="vertical-align: top; text-align: left">4.52E−04</td>
<td style="vertical-align: top; text-align: left">3.98E−01</td>
<td style="vertical-align: top; text-align: left">3.98E−01</td>
<td style="vertical-align: top; text-align: left">3.80E−04</td>
<td style="vertical-align: top; text-align: left">3.98E−01</td>
<td style="vertical-align: top; text-align: left">4.02E−01</td>
<td style="vertical-align: top; text-align: left">1.19E−02</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left">F18</td>
<td style="vertical-align: top; text-align: left">3.00E+00</td>
<td style="vertical-align: top; text-align: left">3.00E+00</td>
<td style="vertical-align: top; text-align: left">3.30E−03</td>
<td style="vertical-align: top; text-align: left">3.00E+00</td>
<td style="vertical-align: top; text-align: left">3.00E+00</td>
<td style="vertical-align: top; text-align: left">5.50E−03</td>
<td style="vertical-align: top; text-align: left">3.00E+00</td>
<td style="vertical-align: top; text-align: left">3.10E+00</td>
<td style="vertical-align: top; text-align: left">5.41E−01</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left">F19</td>
<td style="vertical-align: top; text-align: left">−3.86E+00</td>
<td style="vertical-align: top; text-align: left">−3.86E+00</td>
<td style="vertical-align: top; text-align: left">8.97E−05</td>
<td style="vertical-align: top; text-align: left">−3.86E+00</td>
<td style="vertical-align: top; text-align: left">−3.86E+00</td>
<td style="vertical-align: top; text-align: left">5.52E−04</td>
<td style="vertical-align: top; text-align: left">−3.86E+00</td>
<td style="vertical-align: top; text-align: left">−3.84E+00</td>
<td style="vertical-align: top; text-align: left">2.66E−02</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left">F20</td>
<td style="vertical-align: top; text-align: left">−3.32E+00</td>
<td style="vertical-align: top; text-align: left">−3.23E+00</td>
<td style="vertical-align: top; text-align: left">5.62E−02</td>
<td style="vertical-align: top; text-align: left">−3.31E+00</td>
<td style="vertical-align: top; text-align: left">−3.29E+00</td>
<td style="vertical-align: top; text-align: left">1.20E−02</td>
<td style="vertical-align: top; text-align: left">−3.32E+00</td>
<td style="vertical-align: top; text-align: left">−3.06E+00</td>
<td style="vertical-align: top; text-align: left">2.24E−01</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left">F21</td>
<td style="vertical-align: top; text-align: left">−1.01E+01</td>
<td style="vertical-align: top; text-align: left">−8.34E+00</td>
<td style="vertical-align: top; text-align: left">2.26E+00</td>
<td style="vertical-align: top; text-align: left">−9.69E+00</td>
<td style="vertical-align: top; text-align: left">−8.02E+00</td>
<td style="vertical-align: top; text-align: left">9.29E−01</td>
<td style="vertical-align: top; text-align: left">−1.02E+01</td>
<td style="vertical-align: top; text-align: left">−5.57E+00</td>
<td style="vertical-align: top; text-align: left">3.48E+00</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left">F22</td>
<td style="vertical-align: top; text-align: left">−1.04E+01</td>
<td style="vertical-align: top; text-align: left">−9.66E+00</td>
<td style="vertical-align: top; text-align: left">1.21E+00</td>
<td style="vertical-align: top; text-align: left">−9.83E+00</td>
<td style="vertical-align: top; text-align: left">−8.31E+00</td>
<td style="vertical-align: top; text-align: left">9.32E−01</td>
<td style="vertical-align: top; text-align: left">−1.04E+01</td>
<td style="vertical-align: top; text-align: left">−6.61E+00</td>
<td style="vertical-align: top; text-align: left">3.24E+00</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">F23</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">−1.05E+01</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">−9.82E+00</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">1.01E+00</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">−9.85E+00</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">−8.25E+00</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">8.58E−01</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">−1.05E+01</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">−6.18E+00</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">3.29E+00</td>
</tr>
</tbody>
</table>
<table>
<thead>
<tr>
<td style="vertical-align: top; text-align: left; border-top: solid thin">Function</td>
<td colspan="3" style="vertical-align: top; text-align: left; border-top: solid thin; border-bottom: solid thin">POA</td>
<td colspan="3" style="vertical-align: top; text-align: left; border-top: solid thin; border-bottom: solid thin">KH</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin"/>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">BEST</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">MEAN</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">STD</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">BEST</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">MEAN</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">STD</td>
</tr>
</thead>
<tbody>
<tr>
<td style="vertical-align: top; text-align: left">F14</td>
<td style="vertical-align: top; text-align: left">9.98E−01</td>
<td style="vertical-align: top; text-align: left">9.99E−01</td>
<td style="vertical-align: top; text-align: left">4.10E−03</td>
<td style="vertical-align: top; text-align: left">1.02E+00</td>
<td style="vertical-align: top; text-align: left">1.05E+01</td>
<td style="vertical-align: top; text-align: left">8.73E+00</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left">F15</td>
<td style="vertical-align: top; text-align: left">9.67E−04</td>
<td style="vertical-align: top; text-align: left">1.31E−03</td>
<td style="vertical-align: top; text-align: left">1.85E−04</td>
<td style="vertical-align: top; text-align: left">3.07E−04</td>
<td style="vertical-align: top; text-align: left">4.28E−03</td>
<td style="vertical-align: top; text-align: left">5.92E−03</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left">F16</td>
<td style="vertical-align: top; text-align: left">−1.03E+00</td>
<td style="vertical-align: top; text-align: left">−1.03E+00</td>
<td style="vertical-align: top; text-align: left">1.63E−04</td>
<td style="vertical-align: top; text-align: left">−1.03E+00</td>
<td style="vertical-align: top; text-align: left">−1.03E+00</td>
<td style="vertical-align: top; text-align: left">1.69E−07</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left">F17</td>
<td style="vertical-align: top; text-align: left">3.98E−01</td>
<td style="vertical-align: top; text-align: left">3.98E−01</td>
<td style="vertical-align: top; text-align: left">1.36E−04</td>
<td style="vertical-align: top; text-align: left">3.98E−01</td>
<td style="vertical-align: top; text-align: left">3.98E−01</td>
<td style="vertical-align: top; text-align: left">2.41E−06</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left">F18</td>
<td style="vertical-align: top; text-align: left">3.00E+00</td>
<td style="vertical-align: top; text-align: left">3.00E+00</td>
<td style="vertical-align: top; text-align: left">1.25E−03</td>
<td style="vertical-align: top; text-align: left">3.00E+00</td>
<td style="vertical-align: top; text-align: left">3.00E+00</td>
<td style="vertical-align: top; text-align: left">7.95E−08</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left">F19</td>
<td style="vertical-align: top; text-align: left">−3.86E+00</td>
<td style="vertical-align: top; text-align: left">−3.86E+00</td>
<td style="vertical-align: top; text-align: left">1.57E−04</td>
<td style="vertical-align: top; text-align: left">−3.86E+00</td>
<td style="vertical-align: top; text-align: left">−3.82E+00</td>
<td style="vertical-align: top; text-align: left">4.26E−02</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left">F20</td>
<td style="vertical-align: top; text-align: left">−3.32E+00</td>
<td style="vertical-align: top; text-align: left">−3.31E+00</td>
<td style="vertical-align: top; text-align: left">8.95E−03</td>
<td style="vertical-align: top; text-align: left">−3.32E+00</td>
<td style="vertical-align: top; text-align: left">−3.20E+00</td>
<td style="vertical-align: top; text-align: left">1.31E−01</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left">F21</td>
<td style="vertical-align: top; text-align: left">−1.01E+01</td>
<td style="vertical-align: top; text-align: left">−9.37E+00</td>
<td style="vertical-align: top; text-align: left">5.25E−01</td>
<td style="vertical-align: top; text-align: left">−1.02E+01</td>
<td style="vertical-align: top; text-align: left">−7.26E+00</td>
<td style="vertical-align: top; text-align: left">3.61E+00</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left">F22</td>
<td style="vertical-align: top; text-align: left">−1.03E+01</td>
<td style="vertical-align: top; text-align: left">−9.75E+00</td>
<td style="vertical-align: top; text-align: left">4.30E−01</td>
<td style="vertical-align: top; text-align: left">−1.04E+01</td>
<td style="vertical-align: top; text-align: left">−8.40E+00</td>
<td style="vertical-align: top; text-align: left">3.28E+00</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">F23</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">−1.05E+01</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">−9.94E+00</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">4.30E−01</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">−1.05E+01</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">−7.22E+00</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">3.71E+00</td>
</tr>
</tbody>
</table>
</table-wrap>
<table-wrap id="j_infor635_tab_007">
<label>Table 7</label>
<caption>
<p>Result for fixed dimension multimodal F14–F23 with 50 runs and 1000 iterations.</p>
</caption>
<table>
<thead>
<tr>
<td style="vertical-align: top; text-align: left; border-top: solid thin">Function</td>
<td colspan="3" style="vertical-align: top; text-align: left; border-top: solid thin; border-bottom: solid thin">ZFO</td>
<td colspan="3" style="vertical-align: top; text-align: left; border-top: solid thin; border-bottom: solid thin">CUTTLE</td>
<td colspan="3" style="vertical-align: top; text-align: left; border-top: solid thin; border-bottom: solid thin">JS</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin"/>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">BEST</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">MEAN</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">STD</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">BEST</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">MEAN</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">STD</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">BEST</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">MEAN</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">STD</td>
</tr>
</thead>
<tbody>
<tr>
<td style="vertical-align: top; text-align: left">F14</td>
<td style="vertical-align: top; text-align: left">9.98E−01</td>
<td style="vertical-align: top; text-align: left">9.98E−01</td>
<td style="vertical-align: top; text-align: left">1.72E−05</td>
<td style="vertical-align: top; text-align: left">9.98E−01</td>
<td style="vertical-align: top; text-align: left">9.98E−01</td>
<td style="vertical-align: top; text-align: left">9.48E−05</td>
<td style="vertical-align: top; text-align: left">9.98E−01</td>
<td style="vertical-align: top; text-align: left">4.46E+00</td>
<td style="vertical-align: top; text-align: left">3.07E+00</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left">F15</td>
<td style="vertical-align: top; text-align: left">6.84E−04</td>
<td style="vertical-align: top; text-align: left">1.12E−03</td>
<td style="vertical-align: top; text-align: left">2.13E−04</td>
<td style="vertical-align: top; text-align: left">6.13E−04</td>
<td style="vertical-align: top; text-align: left">9.24E−04</td>
<td style="vertical-align: top; text-align: left">1.46E−04</td>
<td style="vertical-align: top; text-align: left">3.33E−04</td>
<td style="vertical-align: top; text-align: left">4.72E−03</td>
<td style="vertical-align: top; text-align: left">9.47E−03</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left">F16</td>
<td style="vertical-align: top; text-align: left">−1.03E+00</td>
<td style="vertical-align: top; text-align: left">−1.03E+00</td>
<td style="vertical-align: top; text-align: left">1.28E−04</td>
<td style="vertical-align: top; text-align: left">−1.03E+00</td>
<td style="vertical-align: top; text-align: left">−1.03E+00</td>
<td style="vertical-align: top; text-align: left">1.91E−04</td>
<td style="vertical-align: top; text-align: left">−1.03E+00</td>
<td style="vertical-align: top; text-align: left">−1.03E+00</td>
<td style="vertical-align: top; text-align: left">5.93E−05</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left">F17</td>
<td style="vertical-align: top; text-align: left">3.98E−01</td>
<td style="vertical-align: top; text-align: left">3.98E−01</td>
<td style="vertical-align: top; text-align: left">3.25E−04</td>
<td style="vertical-align: top; text-align: left">3.98E−01</td>
<td style="vertical-align: top; text-align: left">3.98E−01</td>
<td style="vertical-align: top; text-align: left">2.81E−04</td>
<td style="vertical-align: top; text-align: left">3.98E−01</td>
<td style="vertical-align: top; text-align: left">4.29E−01</td>
<td style="vertical-align: top; text-align: left">1.03E−01</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left">F18</td>
<td style="vertical-align: top; text-align: left">3.00E+00</td>
<td style="vertical-align: top; text-align: left">3.00E+00</td>
<td style="vertical-align: top; text-align: left">1.69E−03</td>
<td style="vertical-align: top; text-align: left">3.00E+00</td>
<td style="vertical-align: top; text-align: left">3.00E+00</td>
<td style="vertical-align: top; text-align: left">2.59E−03</td>
<td style="vertical-align: top; text-align: left">3.00E+00</td>
<td style="vertical-align: top; text-align: left">3.61E+00</td>
<td style="vertical-align: top; text-align: left">3.69E+00</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left">F19</td>
<td style="vertical-align: top; text-align: left">−3.86E+00</td>
<td style="vertical-align: top; text-align: left">−3.86E+00</td>
<td style="vertical-align: top; text-align: left">5.18E−05</td>
<td style="vertical-align: top; text-align: left">−3.86E+00</td>
<td style="vertical-align: top; text-align: left">−3.86E+00</td>
<td style="vertical-align: top; text-align: left">2.31E−04</td>
<td style="vertical-align: top; text-align: left">−3.86E+00</td>
<td style="vertical-align: top; text-align: left">−3.84E+00</td>
<td style="vertical-align: top; text-align: left">2.34E−02</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left">F20</td>
<td style="vertical-align: top; text-align: left">−3.32E+00</td>
<td style="vertical-align: top; text-align: left">−3.26E+00</td>
<td style="vertical-align: top; text-align: left">6.00E−02</td>
<td style="vertical-align: top; text-align: left">−3.32E+00</td>
<td style="vertical-align: top; text-align: left">−3.30E+00</td>
<td style="vertical-align: top; text-align: left">8.78E−03</td>
<td style="vertical-align: top; text-align: left">−3.32E+00</td>
<td style="vertical-align: top; text-align: left">−3.07E+00</td>
<td style="vertical-align: top; text-align: left">1.94E−01</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left">F21</td>
<td style="vertical-align: top; text-align: left">−1.01E+01</td>
<td style="vertical-align: top; text-align: left">−8.88E+00</td>
<td style="vertical-align: top; text-align: left">1.86E+00</td>
<td style="vertical-align: top; text-align: left">−9.81E+00</td>
<td style="vertical-align: top; text-align: left">−8.66E+00</td>
<td style="vertical-align: top; text-align: left">7.04E−01</td>
<td style="vertical-align: top; text-align: left">−1.02E+01</td>
<td style="vertical-align: top; text-align: left">−5.58E+00</td>
<td style="vertical-align: top; text-align: left">3.34E+00</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left">F22</td>
<td style="vertical-align: top; text-align: left">−1.03E+01</td>
<td style="vertical-align: top; text-align: left">−9.88E+00</td>
<td style="vertical-align: top; text-align: left">1.02E+00</td>
<td style="vertical-align: top; text-align: left">−1.01E+01</td>
<td style="vertical-align: top; text-align: left">−9.07E+00</td>
<td style="vertical-align: top; text-align: left">5.64E−01</td>
<td style="vertical-align: top; text-align: left">−1.04E+01</td>
<td style="vertical-align: top; text-align: left">−5.91E+00</td>
<td style="vertical-align: top; text-align: left">3.25E+00</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">F23</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">−1.05E+01</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">−1.01E+01</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">7.42E−01</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">−1.03E+01</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">−8.76E+00</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">8.20E−01</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">−1.05E+01</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">−5.67E+00</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">3.05E+00</td>
</tr>
</tbody>
</table>
<table>
<thead>
<tr>
<td style="vertical-align: top; text-align: left; border-top: solid thin">Function</td>
<td colspan="3" style="vertical-align: top; text-align: left; border-top: solid thin; border-bottom: solid thin">POA</td>
<td colspan="3" style="vertical-align: top; text-align: left; border-top: solid thin; border-bottom: solid thin">KH</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin"/>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">BEST</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">MEAN</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">STD</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">BEST</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">MEAN</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">STD</td>
</tr>
</thead>
<tbody>
<tr>
<td style="vertical-align: top; text-align: left">F14</td>
<td style="vertical-align: top; text-align: left">9.98E−01</td>
<td style="vertical-align: top; text-align: left">9.98E−01</td>
<td style="vertical-align: top; text-align: left">3.41E−07</td>
<td style="vertical-align: top; text-align: left">9.98E−01</td>
<td style="vertical-align: top; text-align: left">1.22E+01</td>
<td style="vertical-align: top; text-align: left">2.11E+01</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left">F15</td>
<td style="vertical-align: top; text-align: left">6.69E−04</td>
<td style="vertical-align: top; text-align: left">1.05E−03</td>
<td style="vertical-align: top; text-align: left">1.77E−04</td>
<td style="vertical-align: top; text-align: left">3.08E−04</td>
<td style="vertical-align: top; text-align: left">3.40E−03</td>
<td style="vertical-align: top; text-align: left">6.35E−03</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left">F16</td>
<td style="vertical-align: top; text-align: left">−1.03E+00</td>
<td style="vertical-align: top; text-align: left">−1.03E+00</td>
<td style="vertical-align: top; text-align: left">3.05E−05</td>
<td style="vertical-align: top; text-align: left">−1.03E+00</td>
<td style="vertical-align: top; text-align: left">−1.03E+00</td>
<td style="vertical-align: top; text-align: left">3.20E−06</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left">F17</td>
<td style="vertical-align: top; text-align: left">3.98E−01</td>
<td style="vertical-align: top; text-align: left">3.98E−01</td>
<td style="vertical-align: top; text-align: left">4.90E−05</td>
<td style="vertical-align: top; text-align: left">3.98E−01</td>
<td style="vertical-align: top; text-align: left">3.98E−01</td>
<td style="vertical-align: top; text-align: left">4.20E−06</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left">F18</td>
<td style="vertical-align: top; text-align: left">3.00E+00</td>
<td style="vertical-align: top; text-align: left">3.00E+00</td>
<td style="vertical-align: top; text-align: left">3.46E−04</td>
<td style="vertical-align: top; text-align: left">3.00E+00</td>
<td style="vertical-align: top; text-align: left">3.00E+00</td>
<td style="vertical-align: top; text-align: left">1.19E−08</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left">F19</td>
<td style="vertical-align: top; text-align: left">−3.86E+00</td>
<td style="vertical-align: top; text-align: left">−3.86E+00</td>
<td style="vertical-align: top; text-align: left">4.89E−05</td>
<td style="vertical-align: top; text-align: left">−3.86E+00</td>
<td style="vertical-align: top; text-align: left">−3.85E+00</td>
<td style="vertical-align: top; text-align: left">1.42E−02</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left">F20</td>
<td style="vertical-align: top; text-align: left">−3.32E+00</td>
<td style="vertical-align: top; text-align: left">−3.32E+00</td>
<td style="vertical-align: top; text-align: left">2.70E−03</td>
<td style="vertical-align: top; text-align: left">−3.32E+00</td>
<td style="vertical-align: top; text-align: left">−3.28E+00</td>
<td style="vertical-align: top; text-align: left">7.16E−02</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left">F21</td>
<td style="vertical-align: top; text-align: left">−1.01E+01</td>
<td style="vertical-align: top; text-align: left">−9.94E+00</td>
<td style="vertical-align: top; text-align: left">1.59E−01</td>
<td style="vertical-align: top; text-align: left">−1.02E+01</td>
<td style="vertical-align: top; text-align: left">−7.50E+00</td>
<td style="vertical-align: top; text-align: left">3.37E+00</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left">F22</td>
<td style="vertical-align: top; text-align: left">−1.04E+01</td>
<td style="vertical-align: top; text-align: left">−1.02E+01</td>
<td style="vertical-align: top; text-align: left">9.73E−02</td>
<td style="vertical-align: top; text-align: left">−1.04E+01</td>
<td style="vertical-align: top; text-align: left">−7.34E+00</td>
<td style="vertical-align: top; text-align: left">3.66E+00</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">F23</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">−1.05E+01</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">−1.04E+01</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">8.08E−02</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">−1.05E+01</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">−7.83E+00</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">3.67E+00</td>
</tr>
</tbody>
</table>
</table-wrap>
</sec>
<sec id="j_infor635_s_027">
<label>3.5.2</label>
<title>Wilcoxon Signed Rank Test</title>
<fig id="j_infor635_fig_013">
<label>Fig. 10</label>
<caption>
<p>Convergence curve for fixed dimension multimodal F14–F23 with 50 runs and 500 iterations.</p>
</caption>
<table-wrap id="j_infor635_tab_008">
<table>
<tbody>
<tr>
<td style="vertical-align: top; text-align: center"><graphic xlink:href="infor635_g013.jpg"/></td>
</tr>
<tr>
<td style="vertical-align: top; text-align: center"><graphic xlink:href="infor635_g014.jpg"/></td>
</tr>
</tbody>
</table>
</table-wrap>
</fig>
<fig id="j_infor635_fig_014">
<label>Fig. 11</label>
<caption>
<p>Convergence curve for fixed dimension multimodal F14–F23 with 50 runs and 1000 iterations.</p>
</caption>
<graphic xlink:href="infor635_g015.jpg"/>
</fig>
<p>The results of the Wilcoxon signed-rank test demonstrate that there are statistically significant differences in performance between the ZFO algorithm and four other competing algorithms for each of the twenty three benchmark functions when using the best fitness values across independent runs of the ZFO and each of the competing algorithms. To complete the statistical test, the results obtained from each of the four competing algorithms were treated as a “reference” algorithm against which to compare ZFO. Before performing the Wilcoxon signed-rank test, all comparisons with missing values and identical fitness values were excluded to ensure the validity of the comparisons performed. The results obtained from conducting the Wilcoxon signed-rank test resulted in the conclusion that ZFO outperformed the competing algorithms in a statistically significant manner for most benchmark functions. In two specific cases, multimodal and fixed-dimension multimodal problems, the results of the Wilcoxon signed-rank test confirm that the statistically significant performance improvements exhibited by the ZFO algorithm are due to its consistently superior performance rather than due to any form of stochastic variation of performance. Table <xref rid="j_infor635_tab_009">8</xref> summarizes the p-value result for the Wilcoxon signed-rank test for statistically significant differences of performance between the algorithms.Across all the benchmark functions a trend was observed <inline-formula id="j_infor635_ineq_094"><alternatives><mml:math>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">p</mml:mi>
<mml:mo mathvariant="normal">&lt;</mml:mo>
<mml:mn>0.05</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$(p\lt 0.05)$]]></tex-math></alternatives></inline-formula> on statistically significance of the ZFO performance.</p>
<table-wrap id="j_infor635_tab_009">
<label>Table 8</label>
<caption>
<p>Statistical significance analysis using Wilcoxon signed-rank test for ZFO under multiple run.</p>
</caption>
<table>
<thead>
<tr>
<td style="vertical-align: top; text-align: left; border-top: solid thin; border-bottom: solid thin"/>
<td style="vertical-align: top; text-align: left; border-top: solid thin; border-bottom: solid thin">Runs:25,500 Iteration</td>
<td style="vertical-align: top; text-align: left; border-top: solid thin; border-bottom: solid thin">Runs:30,500 Iteration</td>
<td style="vertical-align: top; text-align: left; border-top: solid thin; border-bottom: solid thin">Runs:50,500 Iteration</td>
<td style="vertical-align: top; text-align: left; border-top: solid thin; border-bottom: solid thin">Runs:25,1000 Iteration</td>
<td style="vertical-align: top; text-align: left; border-top: solid thin; border-bottom: solid thin">Runs:30,1000 Iteration</td>
<td style="vertical-align: top; text-align: left; border-top: solid thin; border-bottom: solid thin">Runs:50,1000 Iteration</td>
</tr>
</thead>
<tbody>
<tr>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">Function</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">p_value</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">p_value</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">p_value</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">p_value</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">p_value</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">p_value</td>
</tr>
</tbody><tbody>
<tr>
<td style="vertical-align: top; text-align: left">F1</td>
<td style="vertical-align: top; text-align: left">1.15E−19</td>
<td style="vertical-align: top; text-align: left">1.77E−23</td>
<td style="vertical-align: top; text-align: left">1.58E−39</td>
<td style="vertical-align: top; text-align: left">1.03E−17</td>
<td style="vertical-align: top; text-align: left">2.10E−21</td>
<td style="vertical-align: top; text-align: left">1.02E−35</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left">F2</td>
<td style="vertical-align: top; text-align: left">1.33E−19</td>
<td style="vertical-align: top; text-align: left">2.70E−22</td>
<td style="vertical-align: top; text-align: left">1.51E−39</td>
<td style="vertical-align: top; text-align: left">1.10E−19</td>
<td style="vertical-align: top; text-align: left">1.01E−23</td>
<td style="vertical-align: top; text-align: left">5.14E−39</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left">F3</td>
<td style="vertical-align: top; text-align: left">3.04E−18</td>
<td style="vertical-align: top; text-align: left">3.74E−22</td>
<td style="vertical-align: top; text-align: left">2.93E−37</td>
<td style="vertical-align: top; text-align: left">2.02E−18</td>
<td style="vertical-align: top; text-align: left">2.66E−21</td>
<td style="vertical-align: top; text-align: left">7.76E−38</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left">F4</td>
<td style="vertical-align: top; text-align: left">8.63E−17</td>
<td style="vertical-align: top; text-align: left">8.49E−20</td>
<td style="vertical-align: top; text-align: left">3.88E−34</td>
<td style="vertical-align: top; text-align: left">7.73E−17</td>
<td style="vertical-align: top; text-align: left">3.54E−20</td>
<td style="vertical-align: top; text-align: left">5.62E−34</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left">F5</td>
<td style="vertical-align: top; text-align: left">6.87E−20</td>
<td style="vertical-align: top; text-align: left">3.53E−24</td>
<td style="vertical-align: top; text-align: left">3.19E−40</td>
<td style="vertical-align: top; text-align: left">1.14E−19</td>
<td style="vertical-align: top; text-align: left">2.07E−23</td>
<td style="vertical-align: top; text-align: left">2.98E−39</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left">F6</td>
<td style="vertical-align: top; text-align: left">3.19E−19</td>
<td style="vertical-align: top; text-align: left">2.83E−23</td>
<td style="vertical-align: top; text-align: left">1.02E−39</td>
<td style="vertical-align: top; text-align: left">1.52E−17</td>
<td style="vertical-align: top; text-align: left">3.55E−21</td>
<td style="vertical-align: top; text-align: left">4.90E−36</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left">F7</td>
<td style="vertical-align: top; text-align: left">4.72E−20</td>
<td style="vertical-align: top; text-align: left">1.55E−24</td>
<td style="vertical-align: top; text-align: left">1.39E−40</td>
<td style="vertical-align: top; text-align: left">1.33E−19</td>
<td style="vertical-align: top; text-align: left">6.45E−24</td>
<td style="vertical-align: top; text-align: left">1.75E−40</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left">F8</td>
<td style="vertical-align: top; text-align: left">1.10E−17</td>
<td style="vertical-align: top; text-align: left">1.51E−20</td>
<td style="vertical-align: top; text-align: left">1.26E−35</td>
<td style="vertical-align: top; text-align: left">1.46E−18</td>
<td style="vertical-align: top; text-align: left">3.03E−22</td>
<td style="vertical-align: top; text-align: left">5.26E−37</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left">F9</td>
<td style="vertical-align: top; text-align: left">4.72E−20</td>
<td style="vertical-align: top; text-align: left">2.75E−24</td>
<td style="vertical-align: top; text-align: left">2.23E−41</td>
<td style="vertical-align: top; text-align: left">1.03E−19</td>
<td style="vertical-align: top; text-align: left">1.02E−23</td>
<td style="vertical-align: top; text-align: left">5.30E−40</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left">F10</td>
<td style="vertical-align: top; text-align: left">8.30E−20</td>
<td style="vertical-align: top; text-align: left">7.35E−24</td>
<td style="vertical-align: top; text-align: left">8.93E−41</td>
<td style="vertical-align: top; text-align: left">1.10E−19</td>
<td style="vertical-align: top; text-align: left">1.68E−23</td>
<td style="vertical-align: top; text-align: left">3.19E−40</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left">F11</td>
<td style="vertical-align: top; text-align: left">2.77E−20</td>
<td style="vertical-align: top; text-align: left">7.81E−25</td>
<td style="vertical-align: top; text-align: left">1.42E−40</td>
<td style="vertical-align: top; text-align: left">2.02E−20</td>
<td style="vertical-align: top; text-align: left">1.11E−24</td>
<td style="vertical-align: top; text-align: left">5.54E−42</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left">F12</td>
<td style="vertical-align: top; text-align: left">2.02E−20</td>
<td style="vertical-align: top; text-align: left">1.11E−24</td>
<td style="vertical-align: top; text-align: left">1.15E−41</td>
<td style="vertical-align: top; text-align: left">1.29E−19</td>
<td style="vertical-align: top; text-align: left">1.55E−23</td>
<td style="vertical-align: top; text-align: left">1.81E−40</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left">F13</td>
<td style="vertical-align: top; text-align: left">4.43E−20</td>
<td style="vertical-align: top; text-align: left">2.48E−24</td>
<td style="vertical-align: top; text-align: left">3.04E−41</td>
<td style="vertical-align: top; text-align: left">2.95E−20</td>
<td style="vertical-align: top; text-align: left">5.03E−24</td>
<td style="vertical-align: top; text-align: left">2.71E−39</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left">F14</td>
<td style="vertical-align: top; text-align: left">2.15E−14</td>
<td style="vertical-align: top; text-align: left">1.86E−15</td>
<td style="vertical-align: top; text-align: left">1.86E−30</td>
<td style="vertical-align: top; text-align: left">1.12E−14</td>
<td style="vertical-align: top; text-align: left">2.01E−15</td>
<td style="vertical-align: top; text-align: left">2.28E−29</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left">F15</td>
<td style="vertical-align: top; text-align: left">2.63E−05</td>
<td style="vertical-align: top; text-align: left">8.87E−02</td>
<td style="vertical-align: top; text-align: left">8.84E−06</td>
<td style="vertical-align: top; text-align: left">2.85E−03</td>
<td style="vertical-align: top; text-align: left">1.84E−04</td>
<td style="vertical-align: top; text-align: left">1.40E−02</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left">F16</td>
<td style="vertical-align: top; text-align: left">4.53E−14</td>
<td style="vertical-align: top; text-align: left">9.88E−19</td>
<td style="vertical-align: top; text-align: left">1.01E−28</td>
<td style="vertical-align: top; text-align: left">3.76E−14</td>
<td style="vertical-align: top; text-align: left">5.11E−18</td>
<td style="vertical-align: top; text-align: left">1.53E−31</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left">F17</td>
<td style="vertical-align: top; text-align: left">5.18E−10</td>
<td style="vertical-align: top; text-align: left">1.17E−10</td>
<td style="vertical-align: top; text-align: left">1.66E−20</td>
<td style="vertical-align: top; text-align: left">3.17E−10</td>
<td style="vertical-align: top; text-align: left">2.99E−11</td>
<td style="vertical-align: top; text-align: left">4.99E−19</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left">F18</td>
<td style="vertical-align: top; text-align: left">1.36E−09</td>
<td style="vertical-align: top; text-align: left">9.75E−11</td>
<td style="vertical-align: top; text-align: left">8.98E−22</td>
<td style="vertical-align: top; text-align: left">1.57E−09</td>
<td style="vertical-align: top; text-align: left">5.46E−12</td>
<td style="vertical-align: top; text-align: left">2.42E−21</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left">F19</td>
<td style="vertical-align: top; text-align: left">2.81E−12</td>
<td style="vertical-align: top; text-align: left">1.10E−19</td>
<td style="vertical-align: top; text-align: left">4.35E−30</td>
<td style="vertical-align: top; text-align: left">1.31E−14</td>
<td style="vertical-align: top; text-align: left">3.63E−13</td>
<td style="vertical-align: top; text-align: left">1.79E−21</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left">F20</td>
<td style="vertical-align: top; text-align: left">1.16E−08</td>
<td style="vertical-align: top; text-align: left">8.60E−09</td>
<td style="vertical-align: top; text-align: left">3.50E−13</td>
<td style="vertical-align: top; text-align: left">3.81E−10</td>
<td style="vertical-align: top; text-align: left">1.50E−14</td>
<td style="vertical-align: top; text-align: left">1.01E−19</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left">F21</td>
<td style="vertical-align: top; text-align: left">5.45E−04</td>
<td style="vertical-align: top; text-align: left">2.91E−03</td>
<td style="vertical-align: top; text-align: left">4.28E−06</td>
<td style="vertical-align: top; text-align: left">3.14E−06</td>
<td style="vertical-align: top; text-align: left">6.18E−08</td>
<td style="vertical-align: top; text-align: left">2.03E−12</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left">F22</td>
<td style="vertical-align: top; text-align: left">7.08E−04</td>
<td style="vertical-align: top; text-align: left">3.49E−05</td>
<td style="vertical-align: top; text-align: left">3.72E−11</td>
<td style="vertical-align: top; text-align: left">3.64E−10</td>
<td style="vertical-align: top; text-align: left">3.15E−08</td>
<td style="vertical-align: top; text-align: left">2.49E−11</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">F23</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">2.54E−02</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">1.96E−09</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">2.14E−10</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">4.04E−07</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">1.09E−06</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">6.60E−18</td>
</tr>
</tbody>
</table>
</table-wrap>
</sec>
<sec id="j_infor635_s_028">
<label>3.5.3</label>
<title>Overall Ranking Analysis</title>
<p>This overall ranking considers all of the functions possible within a benchmark configuration, using averaged Friedman rankings to see how the different configurations stack up against one another based on the results of the global performance evaluation. All benchmarks, as expected, performed extremely well, with ZFO finishing at the top of the list each time. The results from the experimental configurations provided conclusive evidence that the overall performance of ZFO shows high levels of robustness in varying sizes of evaluations and budgets of evaluations (or iteration budgets) while allowing for generalising across other types of optimization landscapes. Averages of the Friedman rankings and overall ranks for all algorithms with different runs and iterations show that ZFO is consistently achieving the lowest average rank and demonstrating that it has superior and robust performance overall in Table <xref rid="j_infor635_tab_010">9</xref>.</p>
<table-wrap id="j_infor635_tab_010">
<label>Table 9</label>
<caption>
<p>Friedman average ranks and overall ranking of algorithms under different runs and iterations.</p>
</caption>
<table>
<thead>
<tr>
<td style="vertical-align: top; text-align: left; border-top: solid thin; border-bottom: solid thin">Run</td>
<td style="vertical-align: top; text-align: left; border-top: solid thin; border-bottom: solid thin">Iteration</td>
<td style="vertical-align: top; text-align: left; border-top: solid thin; border-bottom: solid thin">Algorithm</td>
<td style="vertical-align: top; text-align: left; border-top: solid thin; border-bottom: solid thin">AvgRank</td>
<td style="vertical-align: top; text-align: left; border-top: solid thin; border-bottom: solid thin">Overall rank</td>
</tr>
</thead>
<tbody>
<tr>
<td style="vertical-align: top; text-align: left">25</td>
<td style="vertical-align: top; text-align: left">500</td>
<td style="vertical-align: top; text-align: left">ZFO</td>
<td style="vertical-align: top; text-align: left">1.98E+00</td>
<td style="vertical-align: top; text-align: left"><bold>1</bold></td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left"/>
<td style="vertical-align: top; text-align: left"/>
<td style="vertical-align: top; text-align: left">CUTTLE</td>
<td style="vertical-align: top; text-align: left">3.65E+00</td>
<td style="vertical-align: top; text-align: left">4</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left"/>
<td style="vertical-align: top; text-align: left"/>
<td style="vertical-align: top; text-align: left">JS</td>
<td style="vertical-align: top; text-align: left">2.93E+00</td>
<td style="vertical-align: top; text-align: left">3</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left"/>
<td style="vertical-align: top; text-align: left"/>
<td style="vertical-align: top; text-align: left">POA</td>
<td style="vertical-align: top; text-align: left">3.78E+00</td>
<td style="vertical-align: top; text-align: left">5</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left"/>
<td style="vertical-align: top; text-align: left"/>
<td style="vertical-align: top; text-align: left">KH</td>
<td style="vertical-align: top; text-align: left">2.65E+00</td>
<td style="vertical-align: top; text-align: left">2</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left">30</td>
<td style="vertical-align: top; text-align: left">500</td>
<td style="vertical-align: top; text-align: left">ZFO</td>
<td style="vertical-align: top; text-align: left">1.98E+00</td>
<td style="vertical-align: top; text-align: left"><bold>1</bold></td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left"/>
<td style="vertical-align: top; text-align: left"/>
<td style="vertical-align: top; text-align: left">CUTTLE</td>
<td style="vertical-align: top; text-align: left">3.68E+00</td>
<td style="vertical-align: top; text-align: left">4</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left"/>
<td style="vertical-align: top; text-align: left"/>
<td style="vertical-align: top; text-align: left">JS</td>
<td style="vertical-align: top; text-align: left">2.91E+00</td>
<td style="vertical-align: top; text-align: left">3</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left"/>
<td style="vertical-align: top; text-align: left"/>
<td style="vertical-align: top; text-align: left">POA</td>
<td style="vertical-align: top; text-align: left">3.79E+00</td>
<td style="vertical-align: top; text-align: left">5</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left"/>
<td style="vertical-align: top; text-align: left"/>
<td style="vertical-align: top; text-align: left">KH</td>
<td style="vertical-align: top; text-align: left">2.64E+00</td>
<td style="vertical-align: top; text-align: left">2</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left">50</td>
<td style="vertical-align: top; text-align: left">500</td>
<td style="vertical-align: top; text-align: left">ZFO</td>
<td style="vertical-align: top; text-align: left">2.00E+00</td>
<td style="vertical-align: top; text-align: left"><bold>1</bold></td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left"/>
<td style="vertical-align: top; text-align: left"/>
<td style="vertical-align: top; text-align: left">CUTTLE</td>
<td style="vertical-align: top; text-align: left">3.71E+00</td>
<td style="vertical-align: top; text-align: left">4</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left"/>
<td style="vertical-align: top; text-align: left"/>
<td style="vertical-align: top; text-align: left">JS</td>
<td style="vertical-align: top; text-align: left">2.84E+00</td>
<td style="vertical-align: top; text-align: left">3</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left"/>
<td style="vertical-align: top; text-align: left"/>
<td style="vertical-align: top; text-align: left">POA</td>
<td style="vertical-align: top; text-align: left">3.80E+00</td>
<td style="vertical-align: top; text-align: left">5</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left"/>
<td style="vertical-align: top; text-align: left"/>
<td style="vertical-align: top; text-align: left">KH</td>
<td style="vertical-align: top; text-align: left">2.65E+00</td>
<td style="vertical-align: top; text-align: left">2</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left">25</td>
<td style="vertical-align: top; text-align: left">1000</td>
<td style="vertical-align: top; text-align: left">ZFO</td>
<td style="vertical-align: top; text-align: left">2.10E+00</td>
<td style="vertical-align: top; text-align: left"><bold>1</bold></td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left"/>
<td style="vertical-align: top; text-align: left"/>
<td style="vertical-align: top; text-align: left">CUTTLE</td>
<td style="vertical-align: top; text-align: left">3.79E+00</td>
<td style="vertical-align: top; text-align: left">5</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left"/>
<td style="vertical-align: top; text-align: left"/>
<td style="vertical-align: top; text-align: left">JS</td>
<td style="vertical-align: top; text-align: left">2.98E+00</td>
<td style="vertical-align: top; text-align: left">3</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left"/>
<td style="vertical-align: top; text-align: left"/>
<td style="vertical-align: top; text-align: left">POA</td>
<td style="vertical-align: top; text-align: left">3.54E+00</td>
<td style="vertical-align: top; text-align: left">4</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left"/>
<td style="vertical-align: top; text-align: left"/>
<td style="vertical-align: top; text-align: left">KH</td>
<td style="vertical-align: top; text-align: left">2.58E+00</td>
<td style="vertical-align: top; text-align: left">2</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left">30</td>
<td style="vertical-align: top; text-align: left">1000</td>
<td style="vertical-align: top; text-align: left">ZFO</td>
<td style="vertical-align: top; text-align: left">2.08E+00</td>
<td style="vertical-align: top; text-align: left"><bold>1</bold></td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left"/>
<td style="vertical-align: top; text-align: left"/>
<td style="vertical-align: top; text-align: left">CUTTLE</td>
<td style="vertical-align: top; text-align: left">3.76E+00</td>
<td style="vertical-align: top; text-align: left">5</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left"/>
<td style="vertical-align: top; text-align: left"/>
<td style="vertical-align: top; text-align: left">JS</td>
<td style="vertical-align: top; text-align: left">2.98E+00</td>
<td style="vertical-align: top; text-align: left">3</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left"/>
<td style="vertical-align: top; text-align: left"/>
<td style="vertical-align: top; text-align: left">POA</td>
<td style="vertical-align: top; text-align: left">3.58E+00</td>
<td style="vertical-align: top; text-align: left">4</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left"/>
<td style="vertical-align: top; text-align: left"/>
<td style="vertical-align: top; text-align: left">KH</td>
<td style="vertical-align: top; text-align: left">2.60E+00</td>
<td style="vertical-align: top; text-align: left">2</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left">50</td>
<td style="vertical-align: top; text-align: left">1000</td>
<td style="vertical-align: top; text-align: left">ZFO</td>
<td style="vertical-align: top; text-align: left">2.09E+00</td>
<td style="vertical-align: top; text-align: left"><bold>1</bold></td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left"/>
<td style="vertical-align: top; text-align: left"/>
<td style="vertical-align: top; text-align: left">CUTTLE</td>
<td style="vertical-align: top; text-align: left">3.77E+00</td>
<td style="vertical-align: top; text-align: left">5</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left"/>
<td style="vertical-align: top; text-align: left"/>
<td style="vertical-align: top; text-align: left">JS</td>
<td style="vertical-align: top; text-align: left">2.94E+00</td>
<td style="vertical-align: top; text-align: left">3</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left"/>
<td style="vertical-align: top; text-align: left"/>
<td style="vertical-align: top; text-align: left">POA</td>
<td style="vertical-align: top; text-align: left">3.57E+00</td>
<td style="vertical-align: top; text-align: left">4</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin"/>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin"/>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">KH</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">2.63E+00</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">2</td>
</tr>
</tbody>
</table>
</table-wrap>
</sec>
</sec>
<sec id="j_infor635_s_029">
<label>3.6</label>
<title>Analysis of Phase Contributions and Performance Drivers</title>
<p>The benchmark results, as described in Section <xref rid="j_infor635_s_026">3.5.1</xref> and <xref rid="j_infor635_s_028">3.5.3</xref>, show that ZFO outperforms or performs competitively to CFO, JSO, POA, KHO in all three benchmark categories. However, performing well <bold>compared to</bold> other algorithms does not alone guarantee algorithmic quality, determining where and why ZFO performs well (which phase, which biological mechanism and which mechanism driven by parameter is responsible for which improvement of benchmark function classes) is a crucial step. The performance drivers of ZFO were analysed as follow.</p>
<sec id="j_infor635_s_030">
<label>3.6.1</label>
<title>Unimodal Benchmarks (F1–F7): Hunting-Driven Exploitation</title>
<p>For unimodal F1–F7 (with single global and no local optimum) performance is driven by Hunting Phase (Section <xref rid="j_infor635_s_012">2.3.3</xref>). Update (<xref rid="j_infor635_eq_011">11</xref>) includes global (to population best) and local (to neighbours best) directional vector, modulated by time-dependent factor <inline-formula id="j_infor635_ineq_095"><alternatives><mml:math>
<mml:mi mathvariant="italic">τ</mml:mi>
<mml:mo>=</mml:mo><mml:mstyle displaystyle="false">
<mml:mfrac>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">T</mml:mi>
</mml:mrow>
</mml:mfrac>
</mml:mstyle></mml:math><tex-math><![CDATA[$\tau =\frac{t}{T}$]]></tex-math></alternatives></inline-formula>. When small local exploration dominates, to keep population coverage wide, whilst as grows global direction dominates and it increasingly targets the optimum. This temporal dependency fits well with convex, gradient-consistent landscapes such as F1 (Sphere), F2 (Schwefel 2.22) and F4 (Rosenbrock).</p>
<p>This Biological Inspiration directly relates to leaderless group predation observed in zebrafish; the intensity of the attack increases with the group as it closes in on the prey target. In contrast, the cuttlefish (CFO) use their camouflage-based search operator with a static, iteration independent, pull toward the best and pufferfish (POA) with their puffing mechanism use a radius search that increases equally regardless of distance to optimum. CFO and POA are unable to adapt directional search influence and therefore present higher mean values and a larger spread on F1–F7 due to the difference mechanism described. Fairness factor <inline-formula id="j_infor635_ineq_096"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ϕ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\phi _{i}}$]]></tex-math></alternatives></inline-formula> (<xref rid="j_infor635_eq_005">5</xref>) is also directly inspired by leaderless, individual-centric, foraging behaviour: we make a direct connection to zebrafish schooling where less capable individuals are allowed greater exploratory ranges and this is achieved at each hunting step, where weak agents (lower fitness) receive disproportionately larger hunting steps than strong (higher fitness) agents due to the fairness factor <inline-formula id="j_infor635_ineq_097"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ϕ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\phi _{i}}$]]></tex-math></alternatives></inline-formula>.</p>
</sec>
<sec id="j_infor635_s_031">
<label>3.6.2</label>
<title>Multimodal Benchmarks (F8–F13): Fairness-Weighted Exploration and Stagnation Recovery</title>
<p>ZFO is able to outperform on F8–F13 where, due to the multitude of local optima, the two working principles are responsible for the gain: the Fairness-Weighted Exploration Phase (Section <xref rid="j_infor635_s_010">2.3.1</xref>) and the Stagnation-Aware Reinitialization (Section <xref rid="j_infor635_s_013">2.3.4</xref>). The adaptable step t (<xref rid="j_infor635_eq_004">4</xref>) is controlled by max and min and it remains sufficiently large to maintain spread of population in initial iterations, where the risk of being attracted by local optima is the highest, whilst the fairness coefficient <inline-formula id="j_infor635_ineq_098"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ϕ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\phi _{i}}$]]></tex-math></alternatives></inline-formula> enables individuals trapped around a suboptimal local optimum to have larger exploratory movements in proportion to the severity of their trapping and therefore be capable of being kicked out of the basins of attraction. When they fail over iterations of escape, the stagnation count up forces a complete reinitialization to another random point (<xref rid="j_infor635_eq_012">12</xref>), thus forcibly ensuring diversity at the individual level. It is the combination of this two-tiered system of step amplification, which accounts for the unfairest of being trapped around poor local optima and reinitialization after a defined threshold, that is key to ZFO being able to find high-quality solutions in difficult functions such as F8 (Schwefel 2.26), F9 (Rastrigin) and F12 (Penalised).</p>
<p>The fairness coefficient <inline-formula id="j_infor635_ineq_099"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ϕ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\phi _{i}}$]]></tex-math></alternatives></inline-formula> serves the biologically inspired element, directly drawn from the concept of equal access foraging observed in zebrafish where the worse-off individuals exhibit a larger relative movement range than fitter individuals within the shoal, a component not present in jellyfish (JSO) which passively moves with currents and employs a dynamic, population-based state-transition between drifting and foraging or krill (KHO), which uses diffusive, random walks and has no agent-specific state of stagnation. The reinitialization based on the stagnation count up is inspired by the empirical observation of zebrafish abandoning unfavourable foraging sites and redistributing itself and this is again an agent-specific change in state, unlike the two algorithms. It is the lack of these two components which is the cause for the higher mean fitness values and variance produced by JSO and KHO for F8–F13.</p>
</sec>
<sec id="j_infor635_s_032">
<label>3.6.3</label>
<title>Fixed-Dimension Multimodal Benchmarks (F14–F23): Shoaling-Based Coordination and Diversity</title>
<p>For highly non-linear, deceptive, multi-modal fixed-dimension benchmark functions F14–F23, it is the Shoaling Phase (Section <xref rid="j_infor635_s_011">2.3.2</xref>) which predominantly drives performance. The shoaling update (<xref rid="j_infor635_eq_007">7</xref>) drives each individual towards the centroid of its <italic>k</italic> closest neighbours, as opposed to towards global best, facilitating rich neighbourhood-level information exchange and allowing the population to simultaneously explore and converge on distinct promising sub-regions. Minimum distance between individuals is encouraged through the separation parameter <italic>γ</italic> (<inline-formula id="j_infor635_ineq_100"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">S</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${S_{i}}$]]></tex-math></alternatives></inline-formula> in 7), preventing population collapse and keeping distinct basins of attraction explored simultaneously. The stochastic perturbation parameter <inline-formula id="j_infor635_ineq_101"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">δ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">s</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\delta _{s}}$]]></tex-math></alternatives></inline-formula> (<italic>R</italic> in (<xref rid="j_infor635_eq_007">7</xref>)) helps maintain local diversity in each neighbourhood and allows individuals to move through the sharp ridges found in F14 (Langermann), F16 (Six-Hump Camelback) and F18 (Goldstein-Price).</p>
<p>The neighbourhood-centroid based shoaling update is biologically inspired by the very real active spatial regrouping based on proximity in shoals of zebrafish, which continually reform their position based on local cues and shared gradient information. It is distinctly different from the passive, drift-driven positioning of jellyfish (JSO) and diffusion-based herding of krill (KHO). In the case of the zebrafish shoaling mechanism, <italic>γ</italic> and <inline-formula id="j_infor635_ineq_102"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">δ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">s</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\delta _{s}}$]]></tex-math></alternatives></inline-formula> contribute to its ability to efficiently navigate sharp, tricky terrain which is strongly linked to its unique neighbourhood-centroid style update combined with intelligent control of both separation between individuals and internal diversity. CFO’s performed inconsistent behaviour across these specific F14–F23 problems, as compared to JSO, is that neither these specific kinds of spatial search mechanics nor active local grouping behaviours are present in CFO and hence CFO’s performance has the largest variance of all.</p>
</sec>
<sec id="j_infor635_s_033">
<label>3.6.4</label>
<title>Role of the Adaptive Behavioural Transition Strategy and Parameter Interactions</title>
<p>The most unique parameter among the 4 comparison algorithms and ZFO is the adaptive behavioural transition strategy (<xref rid="j_infor635_eq_013">13</xref>)–(<xref rid="j_infor635_eq_015">15</xref>). The adaptive behavioural transition strategy assigned each agent with their own, fitness rank-dependent probability of moving in the direction of exploration, shoaling or hunting at each iteration. This strategy of assigning individual, phase-switching probabilities depended on the interplay of the normalized iteration progress <inline-formula id="j_infor635_ineq_103"><alternatives><mml:math>
<mml:mi mathvariant="italic">τ</mml:mi>
<mml:mo>=</mml:mo><mml:mstyle displaystyle="false">
<mml:mfrac>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">T</mml:mi>
</mml:mrow>
</mml:mfrac>
</mml:mstyle></mml:math><tex-math><![CDATA[$\tau =\frac{t}{T}$]]></tex-math></alternatives></inline-formula>, which skewed the population toward hunting over exploration as optimization progressed, and the individual fairness factor <inline-formula id="j_infor635_ineq_104"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ϕ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\phi _{i}}$]]></tex-math></alternatives></inline-formula>, which modified the individual agent’s personal phase probabilities based on their individual fitness rank. The higher is an agent’s fitness rank, the greater its P hunt, the greater its probability of exploiting the environment intensely, whereas low rank promoted greater P explore. This effectively caused each iteration to maintain a heterogeneous population stratified by fitness level and simultaneous exploration, shoaling and hunting occur within the swarm at varying times. This corresponds to the simultaneous occurrence of these three states at all times in a school of zebrafish.</p>
<p>The probabilities of phase transition are predicated on an empirically proven fitness-dependent zebrafish phase switching behaviour; individuals of low fitness will behave in an explorative or dispersive manner while those with high fitness will maintain the directed hunting behaviour. ZFO is the only model that incorporates an individual, fitness-dependent phase-switching mechanism. CFO has one visibility function-based operator, JSO has a population wide, time-dependent probability, POA utilizes a threshold-based mode switching between attraction and puffing and KHO is designed around static, pre-set weights on three distinct movement components without an individual assigned state.</p>
<p><inline-formula id="j_infor635_ineq_105"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">α</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">m</mml:mi>
<mml:mi mathvariant="italic">a</mml:mi>
<mml:mi mathvariant="italic">x</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\alpha _{max}}$]]></tex-math></alternatives></inline-formula>, <inline-formula id="j_infor635_ineq_106"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">α</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">m</mml:mi>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mi mathvariant="italic">n</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\alpha _{min}}$]]></tex-math></alternatives></inline-formula> which govern the step range of the exploratory movement, <italic>β</italic> (shoaling attraction parameter), <inline-formula id="j_infor635_ineq_107"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">δ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">h</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\delta _{h}}$]]></tex-math></alternatives></inline-formula> (hunting step size) and the stagnation parameter <inline-formula id="j_infor635_ineq_108"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">S</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
<mml:mi mathvariant="italic">h</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${S_{th}}$]]></tex-math></alternatives></inline-formula> (controls the rate of reinitialization) are the parameter combination that characterizes the time and spatial profile of search by ZFO. When combined, these parameters determine the temporal/individual characteristic of search performed by ZFO and are confirmed to yield stable and effective search within all three categories of benchmarks without function-specific parameter adjustment, suggesting generality of the biologically-motivated design.</p>
</sec>
<sec id="j_infor635_s_034">
<label>3.6.5</label>
<title>Summary of Performance Drivers</title>
<p>A summary of the phase-to-benchmark mapping as defined in this work, listing the core driver for each benchmark class, biological inspiration, underlying ZFO mechanism, dominant parameter and the relevant algorithmic shortcoming of comparison algorithms for each benchmark class.</p>
<p>Unimodal (F1-F7): Dominant driver Hunting Phase (<xref rid="j_infor635_eq_011">11</xref>); Biological basis zebrafish leaderless time-intensified predation; Dominant parameter time-adaptive and fairness <italic>i</italic> and the reason for competitors fail is that CFO and POA utilize iteration-independent static attraction that is incapable of increasing directionality over time. Multimodal (F8–F13): Dominant driver Exploration Phase (<xref rid="j_infor635_eq_004">4</xref>), Stagnation Reinitialization (<xref rid="j_infor635_eq_012">12</xref>) zebrafish fairness-weighted dispersal and patch-abandonment and the Dominant parameters – <inline-formula id="j_infor635_ineq_109"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">α</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo movablelimits="false">max</mml:mo>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\alpha _{\max }}$]]></tex-math></alternatives></inline-formula>, <inline-formula id="j_infor635_ineq_110"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">α</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo movablelimits="false">min</mml:mo>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\alpha _{\min }}$]]></tex-math></alternatives></inline-formula>, <inline-formula id="j_infor635_ineq_111"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ϕ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\phi _{i}}$]]></tex-math></alternatives></inline-formula>, stagnation <inline-formula id="j_infor635_ineq_112"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">S</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
<mml:mi mathvariant="italic">h</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mo movablelimits="false">max</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>3</mml:mn>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="normal">round</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>0.05</mml:mn>
<mml:mo>×</mml:mo>
<mml:mi mathvariant="italic">T</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[${S_{th}}=\max (3,\mathrm{round}(0.05\times T))$]]></tex-math></alternatives></inline-formula> where <italic>T</italic> is the number of iterations. It refers to the number of unsuccessful search steps allowed consecutively before reinitialization. It is scaled dynamically according to the optimization horizon and bounded from below by 3. This condition for reset is designed such that it triggers early enough for detecting premature stagnation in short time periods and sustained enough for detection of stagnation in long time periods before reset and the reason of competitor fails is that JSO and KHO are devoid of individual level stagnation detection and threshold based reinitialization. Fixed-dim Multimodal (F14–F23): Dominant driver Shoaling Phase (<xref rid="j_infor635_eq_007">7</xref>); zebrafish proximity-driven fluid spatial regrouping; Dominant parameters <italic>β</italic> (attraction), <italic>γ</italic> (separation), <inline-formula id="j_infor635_ineq_113"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">δ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">s</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\delta _{s}}$]]></tex-math></alternatives></inline-formula> (perturbation), <italic>k</italic> (neighbourhood size) and the reason for competitors fail is that CFO and JSO are devoid of structured neighbourhood-centroid movement including separation and perturbation.</p>
<p>In conclusion, the superior results demonstrated by ZFO cannot be attributed merely to favourable average benchmark statistics but are mechanistically explained by three distinct behavioural phases, each designed to address specific structural characteristics of optimization landscapes. The fairness factor, inspired by the egalitarian foraging behaviour of zebrafish and embedded across all behavioural phases and transition mechanisms acts as an overarching adaptive control mechanism at the individual-agent level. This mechanism helps overcome the limitations of CFO, JSO, POA and KHO, particularly in diversity preservation, stagnation avoidance and adaptive search regulation.</p>
</sec>
</sec>
</sec>
<sec id="j_infor635_s_035">
<label>4</label>
<title>Conclusion And Future Work</title>
<p>The Zebrafish Optimization Algorithm (ZFO) is an innovative metaheuristic algorithm based on models of how zebrafish forage. The key components of ZFO are the exploration phase, where the individual fish explore all available search spaces, the shoaling phase, where the group of zebrafish gathers to assess how they can best hunt together, and the hunt phase, where they will hunt in a group. In the optimization process, ZFO utilizes both stagnation-aware behaviour adaptation and a fairness-driven movement mechanism to maintain an effective balance between global exploration and local exploitation of resources.</p>
<p>The performance of ZFO was tested on a wide variety of benchmark optimization problems ranging from unimodal, multimodal and fixed dimension multimodal functions. ZFO was also compared to multiple state-of-the-art metaheuristic algorithms including the Cuttlefish Optimization Algorithm (CUTTLE), Jellyfish Search Optimizer (JS), Pufferfish Optimization Algorithm (POA) and the Krill Herd Optimizer (KH). Most of the results of the comparative experiments demonstrate ZFO produces solutions of a higher or equal quality, converges faster and is more robust than the others on most benchmark functions. The qualitative evaluation of the convergence curves, search histories/trajectories and the evolution of the population fitness of the ZFO all provide continued support for the efficacy of the behaviour-based methods employed to guide the ZFO search towards potentially promising areas and away from premature convergence.</p>
<p>ZFO’s biologically interpretable architecture and small number of control parameters make it straightforward to develop and implement, greatly reducing tuning time. The use of fairness-based movement allows less capable agents to have meaningful involvement in the search for optimal solutions, stagnation-aware reinitialization gives ZFO the ability to escape local minima. These features provide ZFO with the flexibility and efficiency needed to solve various types of continuous optimization problems.</p>
<p>Although ZFO has shown strong promise, it may exhibit slower convergence when initialized near optimal regions of the search space due to the method’s emphasis on maintaining a diverse population as a means for exploration. Future studies will examine various adaptive parameter control techniques to further enhance exploitation in later stages of the optimization process. Combining ZFO with local search techniques or other population-based metaheuristics may further enhance convergence precision and efficiency. Expanding this framework into multi-objective, discrete and real-world constrained optimization domains may also be significant future work.</p>
</sec>
</body>
<back>
<ref-list id="j_infor635_reflist_001">
<title>References</title>
<ref id="j_infor635_ref_001">
<mixed-citation publication-type="journal"><string-name><surname>Abualigah</surname>, <given-names>L.</given-names></string-name>, <string-name><surname>Diabat</surname>, <given-names>A.</given-names></string-name>, <string-name><surname>Mirjalili</surname>, <given-names>S.</given-names></string-name>, <string-name><surname>Abd Elaziz</surname>, <given-names>M.</given-names></string-name>, <string-name><surname>Gandomi</surname>, <given-names>A.H.</given-names></string-name> (<year>2021</year>). <article-title>The arithmetic optimization algorithm</article-title>. <source>Computer Methods in Applied Mechanics and Engineering</source>, <volume>376</volume>, <elocation-id>113609</elocation-id>. <ext-link ext-link-type="doi" xlink:href="https://doi.org/10.1016/j.cma.2020.113609" xlink:type="simple">https://doi.org/10.1016/j.cma.2020.113609</ext-link>.</mixed-citation>
</ref>
<ref id="j_infor635_ref_002">
<mixed-citation publication-type="journal"><string-name><surname>Abualigah</surname>, <given-names>L.</given-names></string-name>, <string-name><surname>Elaziz</surname>, <given-names>M.A.</given-names></string-name>, <string-name><surname>Khasawneh</surname>, <given-names>A.M.</given-names></string-name>, <string-name><surname>Alshinwan</surname>, <given-names>M.</given-names></string-name>, <string-name><surname>Ibrahim</surname>, <given-names>R.A.</given-names></string-name>, <string-name><surname>Al-Qaness</surname>, <given-names>M.A.</given-names></string-name>, <string-name><surname>Mirjalili</surname>, <given-names>S.</given-names></string-name>, <string-name><surname>Sumari</surname>, <given-names>P.</given-names></string-name>, <string-name><surname>Gandomi</surname>, <given-names>A.H.</given-names></string-name> (<year>2022</year>). <article-title>Meta-heuristic optimization algorithms for solving real-world mechanical engineering design problems: A comprehensive survey, applications, comparative analysis and results</article-title>. <source>Neural Computing &amp; Applications</source>, <volume>34</volume>, <fpage>4081</fpage>–<lpage>4110</lpage>. <ext-link ext-link-type="doi" xlink:href="https://doi.org/10.1007/s00521-021-06747-4" xlink:type="simple">https://doi.org/10.1007/s00521-021-06747-4</ext-link>.</mixed-citation>
</ref>
<ref id="j_infor635_ref_003">
<mixed-citation publication-type="journal"><string-name><surname>Al-Baik</surname>, <given-names>O.</given-names></string-name>, <string-name><surname>Alomari</surname>, <given-names>S.</given-names></string-name>, <string-name><surname>Alssayed</surname>, <given-names>O.</given-names></string-name>, <string-name><surname>Gochhait</surname>, <given-names>S.</given-names></string-name>, <string-name><surname>Leonova</surname>, <given-names>I.</given-names></string-name>, <string-name><surname>Dutta</surname>, <given-names>U.</given-names></string-name>, <string-name><surname>Malik</surname>, <given-names>O.P.</given-names></string-name>, <string-name><surname>Montazeri</surname>, <given-names>Z.</given-names></string-name>, <string-name><surname>Dehghani</surname>, <given-names>M.</given-names></string-name> (<year>2024</year>). <article-title>Pufferfish optimization algorithm: a new bio-inspired metaheuristic algorithm for solving optimization problems</article-title>. <source>Biomimetics</source>, <volume>9</volume>(<issue>2</issue>), <fpage>65</fpage>. <ext-link ext-link-type="doi" xlink:href="https://doi.org/10.3390/biomimetics9020065" xlink:type="simple">https://doi.org/10.3390/biomimetics9020065</ext-link>.</mixed-citation>
</ref>
<ref id="j_infor635_ref_004">
<mixed-citation publication-type="journal"><string-name><surname>Beheshti</surname>, <given-names>Z.</given-names></string-name>, <string-name><surname>Shamsuddin</surname>, <given-names>S.M.</given-names></string-name> (<year>2013</year>). <article-title>A review of population-based meta-heuristic algorithms</article-title>. <source>International Journal of Advances in Soft Computing and its Applications</source>, <volume>5</volume>(<issue>1</issue>), <fpage>1</fpage>–<lpage>35</lpage>. <comment>Available at: <uri>https://www.researchgate.net/publication/270750820_A_review_of_population-based_meta-SSheuristic_algorithm</uri></comment>.</mixed-citation>
</ref>
<ref id="j_infor635_ref_005">
<mixed-citation publication-type="journal"><string-name><surname>Chou</surname>, <given-names>J.-S.</given-names></string-name>, <string-name><surname>Truong</surname>, <given-names>D.-N.</given-names></string-name> (<year>2021</year>). <article-title>A novel metaheuristic optimizer inspired by behavior of jellyfish in ocean</article-title>. <source>Applied Mathematics and Computation</source>, <volume>389</volume>, <elocation-id>125535</elocation-id>. <ext-link ext-link-type="doi" xlink:href="https://doi.org/10.1016/j.amc.2020.125535" xlink:type="simple">https://doi.org/10.1016/j.amc.2020.125535</ext-link>.</mixed-citation>
</ref>
<ref id="j_infor635_ref_006">
<mixed-citation publication-type="journal"><string-name><surname>Civicioglu</surname>, <given-names>P.</given-names></string-name> (<year>2013</year>). <article-title>Backtracking search optimization algorithm for numerical optimization problems</article-title>. <source>Applied Mathematics and Computation</source>, <volume>219</volume>(<issue>15</issue>), <fpage>8121</fpage>–<lpage>8144</lpage>. <uri>https://doi.org/10.1016/j.amc.2013.02.017</uri>.</mixed-citation>
</ref>
<ref id="j_infor635_ref_007">
<mixed-citation publication-type="journal"><string-name><surname>Gad</surname>, <given-names>A.G.</given-names></string-name> (<year>2022</year>). <article-title>Particle swarm optimization algorithm and its applications: a systematic review</article-title>. <source>Archives of Computational Methods in Engineering</source>, <volume>29</volume>(<issue>5</issue>), <fpage>2531</fpage>–<lpage>2561</lpage>. <ext-link ext-link-type="doi" xlink:href="https://doi.org/10.1007/s11831-021-09694-4" xlink:type="simple">https://doi.org/10.1007/s11831-021-09694-4</ext-link>.</mixed-citation>
</ref>
<ref id="j_infor635_ref_008">
<mixed-citation publication-type="journal"><string-name><surname>Gandomi</surname>, <given-names>A.H.</given-names></string-name>, <string-name><surname>Alavi</surname>, <given-names>A.H.</given-names></string-name> (<year>2012</year>). <article-title>Krill herd: a new bio-inspired optimization algorithm</article-title>. <source>Communications in Nonlinear Science and Numerical Simulation</source>, <volume>17</volume>(<issue>12</issue>), <fpage>4831</fpage>–<lpage>4845</lpage>. <ext-link ext-link-type="doi" xlink:href="https://doi.org/10.1016/j.cnsns.2012.05.010" xlink:type="simple">https://doi.org/10.1016/j.cnsns.2012.05.010</ext-link>.</mixed-citation>
</ref>
<ref id="j_infor635_ref_009">
<mixed-citation publication-type="book"><string-name><surname>Glover</surname>, <given-names>F.W.</given-names></string-name>, <string-name><surname>Laguna</surname>, <given-names>M.</given-names></string-name> (<year>1997</year>). <source>Tabu Search</source>. <publisher-name>Springer Science &amp; Business Media</publisher-name>, <publisher-loc>New York, NY, USA</publisher-loc>. <ext-link ext-link-type="doi" xlink:href="https://doi.org/10.1007/978-1-4615-6089-0" xlink:type="simple">https://doi.org/10.1007/978-1-4615-6089-0</ext-link>. (softcover reprint 1998).</mixed-citation>
</ref>
<ref id="j_infor635_ref_010">
<mixed-citation publication-type="journal"><string-name><surname>Hashim</surname>, <given-names>F.A.</given-names></string-name>, <string-name><surname>Mostafa</surname>, <given-names>R.R.</given-names></string-name>, <string-name><surname>Hussien</surname>, <given-names>A.G.</given-names></string-name>, <string-name><surname>Mirjalili</surname>, <given-names>S.</given-names></string-name>, <string-name><surname>Sallam</surname>, <given-names>K.M.</given-names></string-name> (<year>2023</year>). <article-title>Fick’s law algorithm: a physical law-based algorithm for numerical optimization</article-title>. <source>Knowledge-Based Systems</source>, <volume>260</volume>, <elocation-id>110146</elocation-id>. <ext-link ext-link-type="doi" xlink:href="https://doi.org/10.1016/j.knosys.2022.110146" xlink:type="simple">https://doi.org/10.1016/j.knosys.2022.110146</ext-link>.</mixed-citation>
</ref>
<ref id="j_infor635_ref_011">
<mixed-citation publication-type="book"><string-name><surname>Holland</surname>, <given-names>J.H.</given-names></string-name> (<year>1992</year>). <source>Adaptation in Natural and Artificial Systems: An Introductory Analysis with Applications to Biology, Control and Artificial Intelligence</source>. <publisher-name>MIT Press</publisher-name>, <publisher-loc>Cambridge, MA, USA</publisher-loc>. <ext-link ext-link-type="doi" xlink:href="https://doi.org/10.7551/mitpress/1090.001.0001" xlink:type="simple">https://doi.org/10.7551/mitpress/1090.001.0001</ext-link>.</mixed-citation>
</ref>
<ref id="j_infor635_ref_012">
<mixed-citation publication-type="journal"><string-name><surname>Huang</surname>, <given-names>B.</given-names></string-name> (<year>2025</year>a). <article-title>Metaheuristic-based supply chain network optimization and inventory management using ant colony algorithm</article-title>. <source>Informatica</source>, <volume>49</volume>(<issue>7</issue>). <ext-link ext-link-type="doi" xlink:href="https://doi.org/10.31449/inf.v49i7.6760" xlink:type="simple">https://doi.org/10.31449/inf.v49i7.6760</ext-link>.</mixed-citation>
</ref>
<ref id="j_infor635_ref_013">
<mixed-citation publication-type="journal"><string-name><surname>Huang</surname>, <given-names>B.</given-names></string-name> (<year>2025</year>b). <article-title>Hybrid particle swarm optimization and Q-learning for airport parking space allocation and scheduling</article-title>. <source>Informatica</source>, <volume>49</volume>(<issue>31</issue>). <ext-link ext-link-type="doi" xlink:href="https://doi.org/10.31449/inf.v49i31.8352" xlink:type="simple">https://doi.org/10.31449/inf.v49i31.8352</ext-link>.</mixed-citation>
</ref>
<ref id="j_infor635_ref_014">
<mixed-citation publication-type="journal"><string-name><surname>Kalpanarani</surname>, <given-names>K.</given-names></string-name>, <string-name><surname>Hannah Grace</surname>, <given-names>G.</given-names></string-name> (<year>2025</year>). <article-title>SMCFO: a novel cuttlefish optimization algorithm enhanced by simplex method for data clustering</article-title>. <source>Frontiers in Artificial Intelligence</source>, <volume>8</volume>, <elocation-id>1677059</elocation-id>. <ext-link ext-link-type="doi" xlink:href="https://doi.org/10.3389/frai.2025.1677059" xlink:type="simple">https://doi.org/10.3389/frai.2025.1677059</ext-link>.</mixed-citation>
</ref>
<ref id="j_infor635_ref_015">
<mixed-citation publication-type="chapter"><string-name><surname>Kennedy</surname>, <given-names>J.</given-names></string-name>, <string-name><surname>Eberhart</surname>, <given-names>R.</given-names></string-name> (<year>1995</year>). <chapter-title>Particle swarm optimization</chapter-title>. In: <source>Proceedings of ICNN’95-International Conference on Neural Networks</source>, Vol. <volume>4</volume>, pp. <fpage>1942</fpage>–<lpage>1948</lpage>. <ext-link ext-link-type="doi" xlink:href="https://doi.org/10.1109/ICNN.1995.488968" xlink:type="simple">https://doi.org/10.1109/ICNN.1995.488968</ext-link>.</mixed-citation>
</ref>
<ref id="j_infor635_ref_016">
<mixed-citation publication-type="journal"><string-name><surname>Kirkpatrick</surname>, <given-names>S.</given-names></string-name>, <string-name><surname>Gelatt</surname>, <given-names>C.D.</given-names> <suffix>Jr.</suffix></string-name>, <string-name><surname>Vecchi</surname>, <given-names>M.P.</given-names></string-name> (<year>1983</year>). <article-title>Optimization by simulated annealing</article-title>. <source>Science</source>, <volume>220</volume>(<issue>4598</issue>), <fpage>671</fpage>–<lpage>680</lpage>. <ext-link ext-link-type="doi" xlink:href="https://doi.org/10.1126/science.220.4598.671" xlink:type="simple">https://doi.org/10.1126/science.220.4598.671</ext-link>.</mixed-citation>
</ref>
<ref id="j_infor635_ref_017">
<mixed-citation publication-type="chapter"><string-name><surname>Lourenço</surname>, <given-names>H.R.</given-names></string-name>, <string-name><surname>Martin</surname>, <given-names>O.C.</given-names></string-name>, <string-name><surname>Stützle</surname>, <given-names>T.</given-names></string-name> (<year>2003</year>). <chapter-title>Iterated local search</chapter-title>. In: <string-name><surname>Glover</surname>, <given-names>F.</given-names></string-name>, <string-name><surname>Kochenberger</surname>, <given-names>G.A.</given-names></string-name> (Eds.), <source>Handbook of Metaheuristics</source>. <series>International Series in Operations Research &amp; Management Science</series>, Vol. <volume>57</volume>. <publisher-name>Springer</publisher-name>, <publisher-loc>Boston, MA, USA</publisher-loc>. <ext-link ext-link-type="doi" xlink:href="https://doi.org/10.1007/0-306-48056-5_11" xlink:type="simple">https://doi.org/10.1007/0-306-48056-5_11</ext-link>.</mixed-citation>
</ref>
<ref id="j_infor635_ref_018">
<mixed-citation publication-type="journal"><string-name><surname>Mladenović</surname>, <given-names>N.</given-names></string-name>, <string-name><surname>Hansen</surname>, <given-names>P.</given-names></string-name> (<year>1997</year>). <article-title>Variable neighbourhood search</article-title>. <source>Computers and Operations Research</source>, <volume>24</volume>(<issue>11</issue>), <fpage>1097</fpage>–<lpage>1100</lpage>. <ext-link ext-link-type="doi" xlink:href="https://doi.org/10.1016/S0305-0548(97)00031-2" xlink:type="simple">https://doi.org/10.1016/S0305-0548(97)00031-2</ext-link>.</mixed-citation>
</ref>
<ref id="j_infor635_ref_019">
<mixed-citation publication-type="journal"><string-name><surname>Mirjalili</surname>, <given-names>S.</given-names></string-name>, <string-name><surname>Mirjalili</surname>, <given-names>S.M.</given-names></string-name>, <string-name><surname>Lewis</surname>, <given-names>A.</given-names></string-name> (<year>2014</year>). <article-title>Grey wolf optimizer</article-title>. <source>Advances in Engineering Software</source>, <volume>69</volume>, <fpage>46</fpage>–<lpage>61</lpage>. <uri>https://doi.org/10.1016/j.advengsoft.2013.12.007</uri>.</mixed-citation>
</ref>
<ref id="j_infor635_ref_020">
<mixed-citation publication-type="journal"><string-name><surname>Mirjalili</surname>, <given-names>S.</given-names></string-name>, <string-name><surname>Lewis</surname>, <given-names>A.</given-names></string-name> (<year>2016</year>). <article-title>The whale optimization algorithm</article-title>. <source>Advances in Engineering Software</source>, <volume>95</volume>, <fpage>51</fpage>–<lpage>67</lpage>. <uri>https://doi.org/10.1016/j.advengsoft.2016.01.008</uri>.</mixed-citation>
</ref>
<ref id="j_infor635_ref_021">
<mixed-citation publication-type="journal"><string-name><surname>Osaba</surname>, <given-names>E.</given-names></string-name>, <string-name><surname>Villar-Rodríguez</surname>, <given-names>E.</given-names></string-name>, <string-name><surname>Ser</surname>, <given-names>J.D.</given-names></string-name>, <string-name><surname>Nebro</surname>, <given-names>A.J.</given-names></string-name>, <string-name><surname>Molina</surname>, <given-names>D.</given-names></string-name>, <string-name><surname>LaTorre</surname>, <given-names>A.</given-names></string-name>, <string-name><surname>Suganthan</surname>, <given-names>P.N.</given-names></string-name>, <string-name><surname>Coello</surname>, <given-names>C.A.C.</given-names></string-name>, <string-name><surname>Herrera</surname>, <given-names>F.</given-names></string-name> (<year>2021</year>). <article-title>A tutorial on the design, experimentation and application of metaheuristic algorithms to real-world optimization problems</article-title>. <source>Swarm and Evolutionary Computation</source>, <volume>64</volume>, <elocation-id>100888</elocation-id>. <ext-link ext-link-type="doi" xlink:href="https://doi.org/10.1016/j.swevo.2021.100888" xlink:type="simple">https://doi.org/10.1016/j.swevo.2021.100888</ext-link>.</mixed-citation>
</ref>
<ref id="j_infor635_ref_022">
<mixed-citation publication-type="journal"><string-name><surname>Pan</surname>, <given-names>J.S.</given-names></string-name>, <string-name><surname>Hu</surname>, <given-names>P.</given-names></string-name>, <string-name><surname>Snášel</surname>, <given-names>V.</given-names></string-name>, <string-name><surname>Chu</surname>, <given-names>S.-C.</given-names></string-name> (<year>2023</year>). <article-title>A survey on binary metaheuristic algorithms and their engineering applications</article-title>. <source>Artificial Intelligence Review</source>, <volume>56</volume>, <fpage>6101</fpage>–<lpage>6167</lpage>. <ext-link ext-link-type="doi" xlink:href="https://doi.org/10.1007/s10462-022-10328-9" xlink:type="simple">https://doi.org/10.1007/s10462-022-10328-9</ext-link>.</mixed-citation>
</ref>
<ref id="j_infor635_ref_023">
<mixed-citation publication-type="book"><string-name><surname>Price</surname>, <given-names>K.</given-names></string-name>, <string-name><surname>Storn</surname>, <given-names>R.M.</given-names></string-name>, <string-name><surname>Lampinen</surname>, <given-names>J.A.</given-names></string-name> (<year>2006</year>). <source>Differential Evolution: A Practical Approach to Global Optimization</source>. <publisher-name>Springer Science &amp; Business Media</publisher-name>. <ext-link ext-link-type="doi" xlink:href="https://doi.org/10.1007/3-540-31306-0" xlink:type="simple">https://doi.org/10.1007/3-540-31306-0</ext-link>.</mixed-citation>
</ref>
<ref id="j_infor635_ref_024">
<mixed-citation publication-type="journal"><string-name><surname>Rao</surname>, <given-names>R.V.</given-names></string-name>, <string-name><surname>Savsani</surname>, <given-names>V.J.</given-names></string-name>, <string-name><surname>Vakharia</surname>, <given-names>D.</given-names></string-name> (<year>2011</year>). <article-title>Teaching-learning-based optimization: a novel method for constrained mechanical design optimization problems</article-title>. <source>Computer-Aided Design</source>, <volume>43</volume>(<issue>3</issue>), <fpage>303</fpage>–<lpage>315</lpage>. 303–315.<uri>https://doi.org/10.1016/j.cad.2010.12.015</uri>.</mixed-citation>
</ref>
<ref id="j_infor635_ref_025">
<mixed-citation publication-type="journal"><string-name><surname>Rao</surname>, <given-names>R.</given-names></string-name> (<year>2016</year>). <article-title>Jaya: a simple and new optimization algorithm for solving constrained and unconstrained optimization problems</article-title>. <source>International Journal of Industrial Engineering Computations</source>, <volume>7</volume>(<issue>1</issue>), <fpage>19</fpage>–<lpage>34</lpage>. <ext-link ext-link-type="doi" xlink:href="https://doi.org/10.5267/j.ijiec.2015.8.004" xlink:type="simple">https://doi.org/10.5267/j.ijiec.2015.8.004</ext-link>.</mixed-citation>
</ref>
<ref id="j_infor635_ref_026">
<mixed-citation publication-type="journal"><string-name><surname>Rashedi</surname>, <given-names>E.</given-names></string-name>, <string-name><surname>Nezamabadi-Pour</surname>, <given-names>H.</given-names></string-name>, <string-name><surname>Saryazdi</surname>, <given-names>S.</given-names></string-name> (<year>2009</year>). <article-title>GSA: a gravitational search algorithm</article-title>. <source>Information Sciences</source>, <volume>179</volume>(<issue>13</issue>), <fpage>2232</fpage>–<lpage>2248</lpage>. <uri>https://doi.org/10.1016/j.ins.2009.03.004</uri>.</mixed-citation>
</ref>
<ref id="j_infor635_ref_027">
<mixed-citation publication-type="journal"><string-name><surname>Song</surname>, <given-names>P.C.</given-names></string-name>, <string-name><surname>Chu</surname>, <given-names>S.C.</given-names></string-name>, <string-name><surname>Pan</surname>, <given-names>J.S.</given-names></string-name>, <string-name><surname>Yang</surname>, <given-names>H.M.</given-names></string-name> (<year>2022</year>). <article-title>Simplified phasmatodea population evolution algorithm for optimization</article-title>. <source>Complex &amp; Intelligent Systems</source>, <volume>8</volume>(<issue>4</issue>), <fpage>2749</fpage>–<lpage>2767</lpage>. <ext-link ext-link-type="doi" xlink:href="https://doi.org/10.1007/s40747-021-00402-0" xlink:type="simple">https://doi.org/10.1007/s40747-021-00402-0</ext-link>.</mixed-citation>
</ref>
<ref id="j_infor635_ref_028">
<mixed-citation publication-type="journal"><string-name><surname>Sullivan</surname>, <given-names>K.A.</given-names></string-name>, <string-name><surname>Jacobson</surname>, <given-names>S.H.</given-names></string-name> (<year>2001</year>). <article-title>A convergence analysis of generalized hill climbing algorithms</article-title>. <source>IEEE Transactions on Automatic Control</source>, <volume>46</volume>(<issue>8</issue>), <fpage>1288</fpage>–<lpage>1293</lpage>. <ext-link ext-link-type="doi" xlink:href="https://doi.org/10.1109/9.940936" xlink:type="simple">https://doi.org/10.1109/9.940936</ext-link>.</mixed-citation>
</ref>
<ref id="j_infor635_ref_029">
<mixed-citation publication-type="book"><string-name><surname>Surjanovic</surname>, <given-names>S.</given-names></string-name>, <string-name><surname>Bingham</surname>, <given-names>D.</given-names></string-name> (<year>2013</year>). <source>Virtual Library of Simulation Experiments: Test Functions and Datasets</source>. <publisher-name>Simon Fraser University, Burnaby</publisher-name>, <publisher-loc>Canada</publisher-loc>. <uri>https://www.sfu.ca/~ssurjano/optimization.html</uri>.</mixed-citation>
</ref>
<ref id="j_infor635_ref_030">
<mixed-citation publication-type="other"><string-name><surname>Suruthi</surname>, <given-names>M.</given-names></string-name>, <string-name><surname>Ganesh</surname>, <given-names>N.</given-names></string-name> (<year>2026</year>). Zebrafish Optimization Algorithm source code repository. <italic>GitHub</italic>. <uri>https://github.com/suruthi-m/Zebr-Fish-Optimization.git</uri>.</mixed-citation>
</ref>
<ref id="j_infor635_ref_031">
<mixed-citation publication-type="book"><string-name><surname>Talbi</surname>, <given-names>E.-G.</given-names></string-name> (<year>2009</year>). <source>Metaheuristics: From Design to Implementation</source>. <publisher-name>John Wiley &amp; Sons</publisher-name>, <publisher-loc>Hoboken, NJ, USA</publisher-loc>. <ext-link ext-link-type="doi" xlink:href="https://doi.org/10.1002/9780470496916" xlink:type="simple">https://doi.org/10.1002/9780470496916</ext-link>.</mixed-citation>
</ref>
<ref id="j_infor635_ref_032">
<mixed-citation publication-type="journal"><string-name><surname>Vijaya</surname>, <given-names>C.</given-names></string-name>, <string-name><surname>Srinivasan</surname>, <given-names>P.</given-names></string-name> (<year>2024</year>). <article-title>Multi-objective meta-heuristic technique for energy efficient virtual machine placement in cloud data centers</article-title>. <source>Informatica</source>, <volume>48</volume>(<issue>6</issue>). <ext-link ext-link-type="doi" xlink:href="https://doi.org/10.31449/inf.v48i6.5263" xlink:type="simple">https://doi.org/10.31449/inf.v48i6.5263</ext-link>.</mixed-citation>
</ref>
<ref id="j_infor635_ref_033">
<mixed-citation publication-type="journal"><string-name><surname>Wu</surname>, <given-names>X.</given-names></string-name> (<year>2026</year>). <article-title>A hybrid approach of metaheuristic algorithms and GMDH to predict source code testability</article-title>. <source>Informatica</source>, <volume>50</volume>(<issue>10</issue>). <ext-link ext-link-type="doi" xlink:href="https://doi.org/10.31449/inf.v50i10.10680" xlink:type="simple">https://doi.org/10.31449/inf.v50i10.10680</ext-link>.</mixed-citation>
</ref>
<ref id="j_infor635_ref_034">
<mixed-citation publication-type="journal"><string-name><surname>Zhan</surname>, <given-names>Z.H.</given-names></string-name>, <string-name><surname>Shi</surname>, <given-names>L.</given-names></string-name>, <string-name><surname>Tan</surname>, <given-names>K.C.</given-names></string-name>, <string-name><surname>Zhang</surname>, <given-names>J.</given-names></string-name> (<year>2022</year>). <article-title>A survey on evolutionary computation for complex continuous optimization</article-title>. <source>Artificial Intelligence Review</source>, <volume>55</volume>, <fpage>59</fpage>–<lpage>110</lpage>. <ext-link ext-link-type="doi" xlink:href="https://doi.org/10.1007/s10462-021-10042-y" xlink:type="simple">https://doi.org/10.1007/s10462-021-10042-y</ext-link>.</mixed-citation>
</ref>
<ref id="j_infor635_ref_035">
<mixed-citation publication-type="journal"><string-name><surname>Zhao</surname>, <given-names>W.</given-names></string-name>, <string-name><surname>Wang</surname>, <given-names>L.</given-names></string-name>, <string-name><surname>Zhang</surname>, <given-names>Z.</given-names></string-name> (<year>2019</year>). <article-title>Supply-demand-based optimization: a novel economics-inspired algorithm for global optimization</article-title>. <source>IEEE Access</source>, <volume>7</volume>, <fpage>73182</fpage>–<lpage>73206</lpage>. <ext-link ext-link-type="doi" xlink:href="https://doi.org/10.1109/ACCESS.2019.2918753" xlink:type="simple">https://doi.org/10.1109/ACCESS.2019.2918753</ext-link>.</mixed-citation>
</ref>
</ref-list>
</back>
</article>
