# A Particle Swarm and Smell Agent-Based Hybrid Algorithm for Enhanced Optimization
## 2 Hybridization of PSO and SAO Algorithms  
This section provides a brief high-level summary of metaheuristics and then outlines our hybridization approach that combines the PSO algorithm with the trailing mechanism of the SAO algorithm. This hybridization aims to enhance the performance of the original PSO algorithm by addressing convergence issues towards suboptimal solutions. Firstly, we note that metaheuristics are powerful problem-solving techniques used in various fields to find optimal or near-optimal solutions for complex problems. Unlike traditional mathematical optimization methods, which may struggle with highly nonlinear or combinatorial problems, metaheuristics are versatile and can efficiently explore solution spaces. These algorithms draw inspiration from natural processes or human behaviors to iteratively refine solutions. They employ strategies like population-based search, mutation, and selection to explore a wide range of possibilities and gradually converge towards better solutions. Here, we introduce the PSO-SAO algorithm, which is proposed for its ability to enhance the convergence accuracy and adaptability of the original PSO. In developing the PSO-SAO approach, an initial population of randomly generated solutions is used to initiate the PSO process. Each solution (or particle) is associated with a random velocity and explores the optimization hyperspace. Each particle tracks its own position coordinates in hyperspace, denoted as the personal best (_pbest_). The swarm collectively maintains the overall best solution and its position in hyperspace, referred to as the global best (_gbest_). The position (\(x\)) and velocity (\(v\)) of particle \(i\) in an \(n\)-dimensional search space at a specific iteration cycle \(t\) are determined by Equations (1) and (2). The fitness of each particle is assessed, and their respective _pbest_ and the population _gbest_ values are updated using Equation (3), while particle positions are updated using Equation (4). Figure 1 provides an overview of the PSO implementation processes. Specifically, from Figure 1, the initial positions in the PSO algorithm are randomly assigned, and the particle fitness at these positions is evaluated. Then, the velocity is adjusted, and new positions are determined. Thereafter, the fitness of each particle is reevaluated, and the updated fitness is compared to the previous fitness, thus retaining the better value (i.e., smaller or larger value in the case of minimization or maximization problems, respectively). This process then updates the _pbest_ and _gbest_ positions. The PSO procedure then continues until the termination criteria are met. For performance analysis purposes, we classify the benchmark functions used in this work into three categories: unimodal and non-separable (UN), unimodal and separable (US), and multimodal and non-separable (MS), as summarized in Table 1. In this case, the unimodal functions have a single global optimum, aiding in assessing the exploitation capability of an algorithm, while multimodal functions possess multiple local optima, thus facilitating the evaluation of the exploration capability of an algorithm. Specifically, exploitation capability refers to the algorithm's capacity to effectively utilize and exploit known information to maximize performance or achieve optimal results within a given context. It involves refining solutions and making incremental improvements by leveraging existing knowledge or resources. Conversely, exploration capability refers to the ability to search and explore new solutions within a problem space. This process involves discovering new information, potentially sacrificing immediate gains to uncover new possibilities or better solutions. Balancing exploitation and exploration capabilities is crucial, especially in optimization algorithms, as it determines the trade-off between refining known solutions and discovering potentially superior alternatives. Further details about the classification and benchmark test functions can be found in [27].