Energy-driven swarm intelligence optimization method and device, electronic equipment and readable storage medium
By initializing the population, dividing it into elite and exploration sets, and dynamically adjusting individual behavior strategies for robot path planning, the problem of imbalance between global exploration and local development in robot path planning is solved, achieving more efficient path optimization.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- JILIN JIANZHU UNIVERSITY
- Filing Date
- 2026-03-24
- Publication Date
- 2026-07-03
AI Technical Summary
Existing technologies struggle to balance global exploration and local development in dynamic environments during robot path planning, and suffer from slow convergence speed and premature convergence.
By generating an initial population of robot obstacle avoidance paths, the current position, historical best position, and number of successful improvements are initialized for each individual. The individual fitness is determined and an elite set and an exploration set are divided. The development and exploration weights are adjusted based on dynamic role parameters. The individual position is updated using a differential evolution strategy or an energy-driven behavior strategy. The goal orientation of the elite set and the exploration set is dynamically adjusted to generate the global optimal solution.
It enhances the robot's ability to explore globally and explore locally in complex dynamic environments, avoids premature convergence and local optimum traps, and improves adaptability and search efficiency.
Smart Images

Figure CN121933020B_ABST
Abstract
Description
Technical Field
[0001] This application relates to the field of path optimization technology, and in particular to an energy-driven swarm optimization method, apparatus, electronic device, and readable storage medium. Background Technology
[0002] In the field of robot path planning, traditional methods mainly rely on graph search algorithms and metaheuristic algorithms. Graph search algorithms are inefficient in replanning in dynamic environments, while metaheuristic algorithms generally suffer from slow convergence speed, susceptibility to local optima, and complex parameter tuning. Therefore, an optimization algorithm that can better balance global exploration and local exploitation capabilities and quickly adapt to environmental changes is needed.
[0003] In existing technologies, improvements are mainly achieved through three means: first, mixing different algorithms to combine their respective advantages, but this increases system complexity and computational overhead; second, introducing adaptive mechanisms to dynamically adjust algorithm parameters, but the design of such adjustment strategies often relies on experience and lacks versatility; and third, employing multiple groups or hierarchical strategies to maintain search diversity, but improper design of information interaction and competition cooperation mechanisms between groups can easily lead to premature convergence or low efficiency.
[0004] However, these improvements still struggle to effectively and stably achieve an adaptive balance between global exploration and local development in complex dynamic path planning scenarios, and to quickly generate high-quality feasible paths. Summary of the Invention
[0005] In view of this, embodiments of this application provide an energy-driven swarm optimization method, apparatus, electronic device, and readable storage medium to solve the problems of imbalance between global search and local development, slow convergence speed, and premature convergence in existing algorithms in dynamic and complex environments.
[0006] A first aspect of this application provides an energy-driven swarm optimization method, comprising:
[0007] Generate an initial population corresponding to the robot's obstacle avoidance path, and initialize the current position, historical best position, and statistics of successful improvement times for each individual in the initial population;
[0008] Determine the individual fitness of each individual, determine the elite set and the exploration set based on the individual fitness, and determine the dynamic role parameters of each individual based on the number of successful improvements. The elite set is used for local development, and the exploration set is used for global exploration.
[0009] The first goal orientation of individuals in the elite set is determined based on the historical best position and the global best position. The second goal orientation of individuals in the exploration set is determined based on the historical best position and the corresponding elite position of the elite set. The development direction and exploration direction of the elite set and the exploration set are adjusted based on the first goal orientation and the second goal orientation. The first goal orientation and the second goal orientation are both dynamically adjusted based on dynamic role parameters to adjust the development and exploration weights.
[0010] The individual position is updated by selecting either a differential evolution strategy or an energy-driven behavior strategy with a preset probability.
[0011] Based on the updated individual positions, the energy values corresponding to the individuals are updated, and the optimal population corresponding to the global optimal solution is determined based on the updated individual positions and energy values, so as to obtain the robot obstacle avoidance path based on the optimal population.
[0012] A second aspect of this application provides an energy-driven crowd optimization device, comprising:
[0013] The generation module is used to generate the initial population corresponding to the robot's obstacle avoidance path, and initialize the current position, historical best position and successful improvement statistics for each individual in the initial population.
[0014] The processing module is used to determine the individual fitness of each individual, determine the elite set and the exploration set based on the individual fitness, and determine the dynamic role parameters of each individual based on the number of successful improvements. The elite set is used for local development, and the exploration set is used for global exploration.
[0015] The selection module is used to determine the first goal orientation of individuals in the elite set based on the historical best position and the global best position, and to determine the second goal orientation of individuals in the exploration set based on the historical best position and the corresponding elite position of the elite set. It also adjusts the development and exploration directions of the elite set and the exploration set based on the first and second goal orientations. Both the first and second goal orientations are dynamically adjusted based on dynamic role parameters to adjust the development and exploration weights.
[0016] The update module is used to update the individual position by selecting a differential evolution strategy or an energy-driven behavior strategy with a preset probability, so as to obtain the updated individual position.
[0017] The iterative module is used to update the energy value of an individual based on its updated position, and to determine the optimal population corresponding to the global optimal solution based on the updated individual position and energy value, so as to obtain the robot obstacle avoidance path based on the optimal population.
[0018] A third aspect of this application provides an electronic device, including a memory, a processor, and a computer program stored in the memory and executable on the processor, wherein the processor executes the computer program to implement the steps of the above-described method.
[0019] A fourth aspect of this application provides a readable storage medium storing a computer program that, when executed by a processor, implements the steps of the above-described method.
[0020] The beneficial effects of this application embodiment compared with the prior art are as follows: By generating an initial population corresponding to the robot obstacle avoidance path, the current position, historical best position, and successful improvement count statistics are initialized for each individual in the initial population; the individual fitness of each individual is determined, and an elite set and an exploration set are determined based on the individual fitness, and the dynamic role parameters of each individual are determined based on the number of successful improvements; the first goal orientation of individuals in the elite set is determined based on the historical best position and the global best position, and the second goal orientation of individuals in the exploration set is determined based on the historical best position and the elite position corresponding to the elite set, and the opening of the elite set and the exploration set is adjusted based on the first goal orientation and the second goal orientation. The system identifies the direction of exploration and development; it updates the individual's position using a differential evolution strategy or an energy-driven behavior strategy with a preset probability; based on the updated individual position, it updates the energy value corresponding to the individual, and determines the optimal population corresponding to the global optimal solution based on the updated individual position and energy value. The robot then obtains an obstacle avoidance path based on the optimal population. By introducing mechanisms such as hierarchical elite guidance, dynamic role adjustment, competition and cooperation, and dynamic energy balance, the system enhances global exploration and local development capabilities, effectively overcomes premature convergence and local optimum traps, and improves adaptability and search efficiency in complex dynamic environments, thus providing a better solution for robot path planning.
[0021] It should be understood that the above general description and the following detailed description are exemplary and explanatory only, and do not limit this application. Attached Figure Description
[0022] To more clearly illustrate the technical solutions in the embodiments of this application, the drawings used in the description of the embodiments or the prior art will be briefly introduced below. Obviously, the drawings described below are only some embodiments of this application. For those skilled in the art, other drawings can be obtained based on these drawings without creative effort.
[0023] Figure 1 This is a schematic diagram illustrating an application scenario of an embodiment of this application;
[0024] Figure 2This is a flowchart illustrating an energy-driven swarm optimization method provided in an embodiment of this application;
[0025] Figure 3 This is a flowchart illustrating another robot path planning method provided in an embodiment of this application;
[0026] Figure 4 This is a schematic diagram of a 20×20 grid map simulation result provided in an embodiment of this application;
[0027] Figure 5 This is a schematic diagram of a 40×40 grid map simulation result provided in an embodiment of this application;
[0028] Figure 6 This is a schematic diagram of a 60×60 raster map simulation result provided in an embodiment of this application;
[0029] Figure 7 This is a schematic diagram of an 80×80 raster map simulation result provided in an embodiment of this application;
[0030] Figure 8 This is a schematic diagram of the structure of an energy-driven crowd intelligence optimization device provided in an embodiment of this application;
[0031] Figure 9 This is a schematic diagram of the structure of an electronic device provided in an embodiment of this application. Detailed Implementation
[0032] In the following description, specific details such as particular system architectures and techniques are set forth for illustrative purposes and not for limitation, in order to provide a thorough understanding of the embodiments of this application. However, those skilled in the art will understand that this application may also be implemented in other embodiments without these specific details. In other instances, detailed descriptions of well-known systems, apparatuses, circuits, and methods have been omitted so as not to obscure the description of this application with unnecessary detail.
[0033] The following will describe in detail, with reference to the accompanying drawings, an energy-driven crowd optimization method and apparatus according to embodiments of this application.
[0034] Figure 1 This is a schematic diagram illustrating an application scenario according to an embodiment of this application. The application scenario may include a first terminal device 101, a second terminal device 102, a third terminal device 103, a server 104, and a network 105.
[0035] The first terminal device 101, the second terminal device 102, and the third terminal device 103 can be hardware or software. When the first terminal device 101, the second terminal device 102, and the third terminal device 103 are hardware, they can be various electronic devices with displays and supporting communication with the server 104, including but not limited to smartphones, tablets, laptops, and desktop computers. When the first terminal device 101, the second terminal device 102, and the third terminal device 103 are software, they can be installed on the aforementioned electronic devices. The first terminal device 101, the second terminal device 102, and the third terminal device 103 can be implemented as multiple software programs or software modules, or as a single software program or software module; this application embodiment does not impose any limitations on this. Furthermore, various applications can be installed on the first terminal device 101, the second terminal device 102, and the third terminal device 103, such as data processing applications, instant messaging tools, social platform software, search applications, shopping applications, etc.
[0036] Server 104 can be a server that provides various services, such as a backend server that receives requests sent by terminal devices with which it has established communication connections. This backend server can receive and analyze the requests sent by the terminal devices and generate processing results. Server 104 can be a single server, a server cluster consisting of several servers, or a cloud computing service center. This application embodiment does not limit this.
[0037] It should be noted that the server 104 can be either hardware or software. When the server 104 is hardware, it can be various electronic devices that provide various services to the first terminal device 101, the second terminal device 102, and the third terminal device 103. When the server 104 is software, it can be multiple software programs or software modules that provide various services to the first terminal device 101, the second terminal device 102, and the third terminal device 103, or it can be a single software program or software module that provides various services to the first terminal device 101, the second terminal device 102, and the third terminal device 103. This application embodiment does not impose any limitations on this.
[0038] Network 105 can be a wired network using coaxial cable, twisted pair, and fiber optic connection, or it can be a wireless network that enables interconnection of various communication devices without wiring, such as Bluetooth, Near Field Communication (NFC), and Infrared. This application embodiment does not limit this.
[0039] Users can establish a communication connection with server 104 via network 105 through first terminal device 101, second terminal device 102, and third terminal device 103 to receive or send information. Specifically, after the user imports the collected points of interest data into server 104, server 104 obtains the first data of the points of interest to be processed, which includes the first latitude and longitude and the first category of the points of interest to be processed, and performs conflict verification on the points of interest to be processed based on the first latitude and longitude and the first category; furthermore, if a conflict is determined, server 104 performs conflict processing on the points of interest to be processed to avoid a large amount of duplicate data and unusable data in the database.
[0040] It should be noted that the specific types, quantities and combinations of the first terminal device 101, the second terminal device 102, the third terminal device 103, the server 104 and the network 105 can be adjusted according to the actual needs of the application scenario, and this application embodiment does not limit this.
[0041] It should be noted that the acquisition, storage, use, and processing of data in this application embodiment all comply with the relevant provisions of national laws and regulations.
[0042] Furthermore, it should be noted that in the embodiments of this application, certain software, components, models, and other existing solutions in the industry may be mentioned. These should be considered as exemplary, and their purpose is only to illustrate the feasibility of implementing the technical solution of this application. However, it does not mean that the applicant has used or necessarily used the solution.
[0043] Figure 2 This is a flowchart illustrating an energy-driven swarm optimization method provided in an embodiment of this application. Figure 2 Energy-driven swarm optimization methods can be derived from Figure 1 The terminal device executes the command. For example... Figure 2 As shown, this energy-driven swarm optimization method includes:
[0044] Step S201: Generate the initial population corresponding to the robot's obstacle avoidance path, and initialize the current position, historical best position, and successful improvement statistics for each individual in the initial population.
[0045] Specifically, in the robot obstacle avoidance path planning scenario, a solution space corresponding to the path planning space is constructed. Each feasible solution in the solution space corresponds to a potential robot obstacle avoidance path. Each solution is defined as an individual in the algorithm. All individuals together constitute the initial population. The population size is set according to the complexity of the actual path planning. For example, it can be set to 50, which can ensure the diversity of the initial population to cover a wider range of solution spaces, and avoid computational redundancy caused by excessive size.
[0046] For each individual in the initial population, several state parameters need to be initialized. These include: the current position (recording the individual's real-time coordinates in the solution space); the historical best position (representing the best coordinate point reached by the individual since the start of the iteration, initially coinciding with the current position); statistics on the number of successful improvements (using a fixed-length sliding window, e.g., the last 5 iterations), resulting in a queue indicating whether the individual has achieved fitness improvement, providing a data basis for calculating dynamic role parameters; an initial energy value (set to a random or fixed value within the range of 20 to 50), which constitutes the intrinsic metric for subsequent behavior mode switching; and a search step length vector.
[0047] This application embodiment provides a unified and reasonable starting condition for algorithm iteration by initializing the core state parameters of individuals, ensuring the exploration capability of the population in the initial stage; the zero initialization of the number of successful improvements provides an accurate statistical basis for the subsequent dynamic adjustment of individual behavior patterns, avoiding the influence of initial statistical deviations on the algorithm's optimization direction.
[0048] Step S202: Determine the individual fitness of each individual, determine the elite set and the exploration set based on the individual fitness, and determine the dynamic role parameters of each individual based on the number of successful improvements.
[0049] The elite set is used for local development, while the exploration set is used for global exploration.
[0050] Specifically, the fitness value of each path individual is calculated based on the comprehensive cost function, which can integrate three aspects: path length, turning cost, and obstacle threat.
[0051] Based on the individual fitness value, the inchworm individuals in the group are grouped into an elite set and an exploration set. The elite set is the set of inchworm individuals with better individual fitness performance in the group, and the exploration set is the set of inchworm individuals remaining in the group excluding the elite set. The individual fitness values of all inchworm individuals can be sorted in ascending order. The number of individuals in the elite set is determined according to the preset elite ratio. The first preset number of inchworm individuals after sorting are selected to form the elite set, and the remaining inchworm individuals naturally form the exploration set.
[0052] While completing the division of the elite set and the exploration set, the dynamic role parameters corresponding to each individual are calculated based on the number of successful improvements of each individual inchworm. The number of successful improvements is the number of times that the individual fitness value after the position update is better than the individual fitness value before the update within the recent preset number of iterations.
[0053] The determination of dynamic role parameters can be based on the statistics of successful improvement times, that is, the number of times each individual has successfully improved its fitness in the most recent iteration with a preset window size, and the ratio of this number to the window size ρ∈[0,1]. A ρ value close to 1 indicates that the individual has been continuously finding better solutions recently and is in an efficient development stage, while a ρ value close to 0 indicates that the individual has stagnated and needs to strengthen its exploration tendency, thus breaking the limitation of the fixed individual role in the traditional algorithm.
[0054] Among them, for individuals exploring subsets, their social learning objective is to randomly select individuals from the elite subset, rather than fixed global optimal individuals, which helps to maintain the diversity of the group and avoid premature convergence. It also introduces a dynamic role parameter for individuals, which is calculated based on the individual's improved performance in recent iterations. Individuals with excellent performance are given a higher development tendency, making them move closer to the high-quality solution region during updates.
[0055] Specifically, this could involve determining dynamic role parameters and adjusting an individual's development tendencies based on their recent performance. The process can be represented as follows:
[0056] Determine the dynamic role parameters of the i-th individual in the t-th iteration. ;in, This represents the dynamic role parameters for determining the i-th individual in the current iteration t-th iteration, used to reflect the individual's recent successful performance. Indicates a length of Within the observation window, the number of times the i-th individual successfully improves its fitness.
[0057] The weight of the i-th individual in developing relevant strategies can be represented as: ;in, This represents the first weight of the i-th individual. This represents the baseline value for the first weight. This indicates the adjustment step size of the weights, used to control the magnitude of weight changes.
[0058] The weight of the i-th individual in exploring relevant strategies can be represented as: ;in, This represents the third weight of the i-th individual. This represents the baseline value for the third weight.
[0059] This application's embodiments achieve the separation and synergy of high-quality information and search diversity by dividing the elite set and the exploration set through fitness; the dynamic role parameters are dynamically calculated based on the individual's recent performance, which can accurately reflect the individual's behavioral characteristics and provide data support for subsequent differentiated adjustment of development and exploration weights, avoiding the rigidity of behavioral patterns caused by fixed parameters.
[0060] Step S203: Determine the first goal orientation of individuals in the elite set based on the historical best position and the global best position; determine the second goal orientation of individuals in the exploration set based on the historical best position and the corresponding elite position of the elite set; and adjust the development direction and exploration direction of the elite set and exploration set based on the first goal orientation and the second goal orientation.
[0061] Both the first and second goal orientations are based on dynamically adjusting the development and exploration weights according to dynamic role parameters.
[0062] Specifically, for elite individuals, the first goal-oriented synthesis is based on the weighted fusion of three information sources: the individual's own historical best position (individual experience), the current global best position (group experience), and the first random perturbation vector (random exploration). The corresponding weight configuration can follow the normalization constraint w1+w2+w3=1, where w1 corresponds to the development weight, w3 corresponds to the exploration weight, and w2 is the social learning weight, which usually remains relatively stable.
[0063] Among them, w1 and w3 are not fixed values, but are dynamically adjusted based on the dynamic role parameter ρ. When an individual performs well recently, the development weight is increased and the exploration weight is decreased, which can guide it to deeply develop the existing high-quality neighborhood. Conversely, the exploration tendency is strengthened, causing it to jump out of the current area.
[0064] Furthermore, the second-goal-oriented synthesis logic for exploring individuals in the set is similar, used to replace the global optimal position with a specific elite position selected from the elite set.
[0065] Among them, the elite selection can construct a roulette wheel mechanism based on attraction score, that is, determine the fitness difference and positional distance between each elite individual and the individuals in the exploration set. The elite with the greater fitness advantage and the closer the distance, the higher the probability of being selected, which ensures individual differences and also ensures the quality of guidance.
[0066] This application embodiment ensures the in-depth development of high-quality solutions by differentiating the elite set and the exploration set by designing goal orientations. It also expands the search range by having individuals in the elite set learn from information from multiple elites. By adjusting the weights through dynamic role parameters, the development and exploration tendencies of each individual are matched with their own performance, avoiding the problem of some individuals being underdeveloped or over-explored due to weight settings, thus improving the optimization targeting of the algorithm.
[0067] Step S204: Select a differential evolution strategy or an energy-driven behavior strategy with a preset probability to update the individual position, and obtain the updated individual position.
[0068] Specifically, two parallel position update channels are provided, which can be executed with a preset probability. The first channel is a differential evolution strategy, which randomly selects three distinct individuals in the current population, generates a differential mutation vector, crosses it with the original individuals, and retains the superior ones through greedy selection.
[0069] The selection of three distinct individuals can be further constrained to prioritize individuals that are in the same set or have the same behavioral patterns as the current individual, so as to keep the individual after differential evolution still in the current elite set or exploration set.
[0070] The second channel is an energy-driven behavior strategy, which is divided into three states based on the energy value. When the energy value is higher than the wandering threshold, the Levi flight behavior is executed, which generates a random step size through a heavy-tailed distribution to support occasional large-span jumps, in line with the needs of global exploration. When the energy value is between zero and the wandering threshold, directional foraging is executed, moving towards the target guidance vector with the search step length vector as the step size to achieve local development. When the energy value drops below zero, molting reset is triggered, which randomly selects a base point from the historical archive and applies a perturbation to force the escape from the local optimum trap.
[0071] The embodiments of this application combine the advantages of the directional diversity of differential evolution with the behavioral interpretability of energy-driven strategies. The probabilistic channel selection avoids the limitations of a single strategy, and the energy-driven strategy converges rapidly in continuously differentiable problems, achieving complementary robustness at the strategy level.
[0072] Step S205: Based on the updated individual position, update the energy value corresponding to the individual, and determine the optimal population corresponding to the global optimal solution based on the updated individual position and energy value, so as to obtain the robot obstacle avoidance path based on the optimal population.
[0073] Specifically, the process involves updating and evaluating the individual's location, determining the fitness value of the new location, and then proceeding to the energy update stage. Based on the local density of the individual's current location, the dynamic energy decay rate is determined, with higher density resulting in faster decay, thus simulating resource competition pressure.
[0074] If the new position is better than the current position, a fixed energy gain is added; otherwise, a suboptimal solution is accepted based on the simulated annealing probability. The simulated annealing temperature decreases exponentially with the number of iterations, and the updated energy value is limited to preset upper and lower bounds to prevent overflow. The search step length vector is adjusted synchronously: when the update is successful, the step size is increased by the expansion rate (requiring an upper bound constraint); when it fails, the step size is decreased by the contraction rate (requiring a lower bound constraint) to achieve adaptive adjustment of the search granularity.
[0075] After each update, the historical best position of all individuals is compared, and the one with the best fitness is taken as the current global optimum. When the preset number of iterations is reached or the global optimum has not been improved for several consecutive generations, the algorithm is terminated and the path point sequence corresponding to the global optimum position is output, which is the optimal solution for the robot obstacle avoidance path planning.
[0076] Furthermore, a simulated annealing perturbation acceptance mechanism can be added, which allows individuals to accept inferior solutions with a certain probability, thus helping the group to traverse undesirable regions in the solution space in the early stages of iteration.
[0077] The combined effect of the above mechanisms achieves a dynamic balance between exploration and development, and between centralized and decentralized approaches in the algorithm. In robot obstacle avoidance path planning, it can be used to plan a collision-free path from the starting point to the target point for a mobile robot. The solution to the optimization problem is encoded as a polyline composed of multiple path points, and multiple initial polyline paths can be randomly generated during the initialization phase.
[0078] In the iterative optimization step, the fitness of each individual can be evaluated by comprehensively considering the cost function of path length, turning angle and distance to obstacles. Among them, the improved group inchworm foraging optimization (IGIFO) algorithm is used to drive the continuous evolution of individual paths. Wandering behavior causes the path to deform significantly to explore new feasible areas, foraging behavior makes local fine-tuning of the path to shorten the length or smooth the turns, and molting behavior resets the path that is trapped in a local optimum to near its historical optimum. Thus, by fusing information from elite paths and introducing random perturbations, it can effectively coordinate global path search and local obstacle avoidance adjustment, and output an optimized path that satisfies the robot's motion constraints and avoids all obstacles.
[0079] In the cost function evaluation process, each cost component can be multiplied by its corresponding weight, and the three products can be added together to obtain a scalar cost value. This cost value can be used to compare and rank the merits of different paths in the population, and the process can be expressed by the following formula:
[0080] ;
[0081] in, Indicates value, Indicates distance cost. Indicates the cost of turning angle. Indicates the cost of obstacles and threats. , , These are the weighting coefficients corresponding to each cost item.
[0082] The distance cost can be determined by the Euclidean distance between the coordinates of the path points, and its expression is:
[0083] Where n represents the total number of path points, This represents the coordinates of the r-th path point. This represents the Euclidean distance from the (r-1)th path point to the rth path point.
[0084] The cost of turning angle can be determined by the cosine of the turning angle, which can be expressed as a piecewise expression:
[0085] ;in, Indicates the cost of turning angle. Let represent the cosine of the turning angle at the r-th point of the path. The cosine value can be determined by the coordinates of three adjacent path points and the Euclidean distance between them. Its expression is:
[0086] ;in, This represents the cosine of the turning angle at the r-th point on the path, used to determine the direction and degree of the turn. This represents the coordinates of the r-th path point. This represents the coordinates of the (r-1)th path point. This represents the coordinates of the (r+1)th path point. Indicates from point to The vector, Representing vectors The length.
[0087] The obstacle threat cost can be determined by the path obstacle threat cost for each segment of the path, and its expression is:
[0088] ;in, The path obstacle threat cost for each path segment is expressed as follows: ;in, This represents the minimum distance between the path from r-1 to r and the obstacle. When the minimum distance between the path and the obstacle is greater than 1, the path obstacle threat cost is 0. When the minimum distance between the path and the obstacle is not greater than 1, the path obstacle threat cost is 100.
[0089] This application embodiment uses a dynamic energy update mechanism to link individual energy consumption with environmental congestion, making behavior switching more consistent with the actual search state. The maintenance of high-quality solution archives avoids the loss of high-quality information and provides effective inspiration for subsequent optimization. The determination of the optimal population is based on the global optimal solution after multiple iterations, ensuring the feasibility and optimality of obstacle avoidance paths and meeting the robot's autonomous movement needs in complex environments.
[0090] This application's embodiments utilize an improved swarm optimization algorithm, achieving hierarchical utilization of high-quality information through the division of elite and exploration sets. Dynamic role parameters break the static solidification of individual roles, and differentiated goal orientation enables refined control tailored to individual differences. The hybrid update strategy integrates the advantages of multiple evolutionary mechanisms, while energy-driven and adaptive control endow the algorithm with intrinsic constraints and environmental responsiveness based on biological behavior. When applied to robot obstacle avoidance path planning scenarios, this framework can quickly locate feasible paths in complex obstacle environments, balancing multiple objectives such as path length, smoothness, and safety, exhibiting faster convergence speed and higher solution quality stability compared to traditional swarm intelligence algorithms.
[0091] In some embodiments, generating an initial population corresponding to the robot's obstacle avoidance path includes:
[0092] Based on the preset constraints corresponding to the robot's obstacle avoidance path, initial candidate solutions are generated through random sampling.
[0093] All initial candidate solutions that satisfy the preset boundary conditions are identified as the initial population.
[0094] Specifically, when generating initial candidate solutions, multiple constraints need to be considered, and random sampling is performed within the solution space of the map. Here, the constraints refer to a series of physical or task restrictions that candidate paths follow in the robot path planning problem, and their basic meaning is the rules for limiting the feasibility of the path.
[0095] In the initial generation stage, constraints are added to ensure that the generated path prototype has basic feasibility, avoiding wasting computational resources on invalid solutions in subsequent optimizations. These constraints can stem from analyses of the robot's motion characteristics and the task environment. For example, the maximum travel constraint originates from the robot's energy limitations, the turning angle constraint from the kinematic limitations of its mechanical structure, and the obstacle avoidance requirement from information about threat areas in the environment.
[0096] Furthermore, based on the constraints, a series of path points can be selected in the free space of the two-dimensional grid map by random sampling to provide an initial solution set with sufficient diversity for the optimization process, helping the algorithm to explore different regions of the solution space in the early stages.
[0097] In practice, within the grid coordinate range of the map boundary and non-threat area, a series of coordinate points are randomly generated and connected sequentially to form a polyline path from the starting point to the ending point. This polyline path constitutes an initial candidate solution.
[0098] In this context, the initial candidate solution individual is the basic unit to be optimized in the improved swarm inchworm optimization algorithm. Its basic meaning is an unoptimized, possible complete path in the early stage of algorithm iteration. Each individual encodes a complete trajectory of the robot from the starting point to the ending point and is the direct object of all subsequent optimization actions.
[0099] For example, in a warehousing and logistics scenario, a robot needs to move from the starting point of the shelves in warehouse area A to the loading endpoint in area B. There are multiple fixed shelves in the environment as obstacles. The maximum travel distance constraint is set according to the robot's maximum range, and the turning angle constraint is set according to the minimum turning radius of its chassis. All shelves are marked as threat areas in the grid map. Within the area between the starting point and the endpoint, within the map boundary, and avoiding all shelf marking grids, several coordinate points are randomly selected, and these points are connected in sequence to form an initial polyline path. This path is used as an initial candidate solution.
[0100] In addition, after generating all initial candidate solutions, multiple individuals are combined to form an initial population that satisfies the preset boundary conditions. The preset boundary conditions are a set of basic feasibility conditions that all individuals in the initial population must satisfy. The initial population is obtained by generating multiple initial candidate solutions through random sampling and constraint verification processes.
[0101] Furthermore, when constructing the initial population, boundary conditions are verified for each individual generated through random sampling. If an individual does not meet the preset boundary conditions, it is discarded and regenerated until a specified number of individuals that all meet the preset boundary conditions are obtained, thus forming a high-quality initial population.
[0102] This application embodiment sets constraints based on the robot's motion constraints and environmental threat information, and generates initial candidate solutions using random sampling. This constructs an initial population that satisfies preset boundary conditions, ensuring the algorithm starts optimization from paths with basic physical feasibility. This avoids blind searching in a large space of invalid solutions, improving the overall search efficiency and practicality of the algorithm. The random sampling method constructs an initial population with spatial diversity, providing a broad global exploration foundation for subsequent algorithms. This facilitates the discovery of different potential path regions in complex obstacle environments, reducing the risk of getting trapped in local optima due to a single initial population. Preset boundary conditions are used to screen the initial population, ensuring the quality of the iteration starting point. This provides reliable and diverse operational objects for improving advanced optimization behaviors such as elite guidance and competitive cooperation in the swarm optimization algorithm, thus making it more conducive to generating safe, smooth, and optimal obstacle avoidance paths that conform to the robot's motion characteristics.
[0103] In some embodiments, determining the individual fitness of each individual, and determining the elite set and the exploration set based on the individual fitness, includes:
[0104] Individual fitness is sorted in ascending order, and individuals ranked within the first preset ratio range are identified as individuals corresponding to the initial elite set, while other individuals are identified as individuals corresponding to the initial exploration set.
[0105] Individuals that extend to the center from the maximum value of the first preset ratio range and to both sides of the second preset ratio range are identified as optimized individuals. The relative improvement rate of fitness between the individual fitness of each optimized individual at the current iteration number and the corresponding historical best position is determined, wherein the first preset ratio range is greater than the second preset ratio range.
[0106] If the relative improvement rate of fitness of the optimized individuals in the initial exploration set is higher than the relative improvement rate of fitness of any optimized individual in the initial elite set, the optimized individuals in the initial elite set and the initial exploration set are swapped to obtain the elite set and the exploration set.
[0107] Specifically, the group consists of multiple individuals, each of which represents a possible robot path solution. The position of an individual is represented by a sequence of path node coordinates, and the fitness value is calculated by a cost function that evaluates the quality of the path. The cost function takes into account the path length, turning angle, and obstacle threat distance.
[0108] Individual fitness is sorted in ascending order. Individuals ranked within a first preset ratio range are designated as the initial elite set, while the remaining individuals are designated as the initial exploration set. The first preset ratio range is 0%-30%, meaning that individuals with fitness between 0% and 30% are designated as the initial elite set, and individuals with fitness between 30% and 100% are designated as the initial exploration set, thus obtaining the initial elite set and the initial exploration set.
[0109] In addition, each individual maintains a historical best position during the iteration process. This position is the coordinate of the best fitness value that the individual has experienced from the start of the algorithm to the current iteration. After each iteration, individuals within a second preset percentage range, centered on the maximum value of a first preset percentage range, are identified as optimized individuals. The second preset percentage range can be 10%. For example, if the maximum value of the first preset percentage range is 30%, then the second preset percentage range is the range of 10% above and below 30%, i.e., 20% to 40%. Individuals with fitness values between 20% and 40% are identified as optimized individuals.
[0110] Determine the relative fitness improvement rate of each tuned individual between the current iteration and its historical best position. The relative fitness improvement rate represents the degree of improvement of the fitness value of the tuned individual at the new position reached in the current iteration compared with the fitness value of the historical best position recorded before the update. The magnitude of the value directly affects the tendency of the tuned individual to be classified as a "developer" or "explorer".
[0111] Subsequently, all optimized individuals are sorted based on this relative fitness improvement rate. Thus, if the relative fitness improvement rate of an optimized individual in the initial exploration set is higher than that of any optimized individual in the initial elite set, an inter-set individual exchange mechanism is triggered. That is, the optimized individual in the initial exploration set is transferred to the initial elite set, and the optimized individual in the initial elite set is transferred to the initial exploration set, thus completing one inter-set individual exchange and obtaining the elite set and the exploration set.
[0112] If multiple individuals in the initial exploration set meet the above conditions, they are exchanged one by one with the optimized individuals in the initial elite set in descending order of their relative fitness improvement rate, until all exchanges are completed, resulting in the elite set and the exploration set.
[0113] This application embodiment divides the initial elite set and the initial exploration set by individual fitness, and calculates the relative improvement rate of fitness based on the current iteration's historical best position. Based on the relative improvement rate of fitness, it determines the optimized individuals, and sets or processes the improvement rate value differently according to the ranking of the optimized individuals in the group. This achieves refined and adaptive guidance of the group's search behavior, and optimizes the initial elite set and the initial exploration set according to the relative improvement rate of fitness of the optimized individuals, thus obtaining the elite set and the exploration set.
[0114] In some embodiments, the method includes: determining the first goal orientation of individuals in the elite set based on historical best position and global best position, including:
[0115] The first direction vector of individuals in the elite set is determined based on the historical best position and the global best position, and the random exploration component is determined based on the first random perturbation vector.
[0116] Development weight and exploration weight are determined based on dynamic role parameters. Development weight is positively correlated with dynamic role parameters, while exploration weight is negatively correlated with dynamic role parameters.
[0117] Multiply the historical optimal position by the development weight, the global optimal position by the preset social weight, and the random exploration component by the exploration weight. Sum these products and normalize the result to obtain the first objective orientation.
[0118] Specifically, when improving the swarm inchworm optimization algorithm for path planning, this method calculates the dynamic role parameters of each individual, that is, dynamically evaluates and adjusts the individual based on its performance in recent iterations, and each individual in the swarm independently maintains a performance record.
[0119] Furthermore, this statistical process is conducted within a pre-defined observation window. The size of the observation window defines the time frame for examining an individual's recent performance, enabling the dynamic evaluation to reflect the individual's current search status rather than their distant historical search status. Based on the statistics of the number of successes, a quantified dynamic role parameter value is generated through pre-defined calculation rules. This dynamic role parameter value is used to quantify the individual's tendency between exploration and development, achieving adaptive adjustment of the search strategy.
[0120] In addition, when the group performs position updates, especially when calculating the attraction toward the group's best experience (i.e., the global optimal position or the position of elite individuals), the dynamic role parameter of an individual will act as a moderating factor. Individuals with higher dynamic role parameters are considered to be "developers" who have performed well recently, and this parameter will strengthen their tendency to learn from excellent experiences and perform fine-grained local searches.
[0121] Furthermore, for individuals with low dynamic role parameters, who are considered "explorers" whose recent exploration results are not significant, their dependence on social cognition items will be reduced, and they will be encouraged to conduct more diversified explorations, such as randomly selecting an elite from the elite set to follow, rather than fixedly following the global optimum.
[0122] Furthermore, the dynamic role parameters in this method are continuously and adaptively updated. After each iteration, each individual updates its success count based on whether it found a new solution better than its historical best position in this iteration. If the iteration is successful, its success count increases; otherwise, it may remain unchanged or be adjusted using a decay mechanism.
[0123] Furthermore, as the iteration progresses, an individual's recent search success rate will continuously change, thereby driving its dynamic role parameter value to increase or decrease accordingly.
[0124] This application embodiment introduces and calculates dynamic role parameters for each individual in the optimization algorithm, and implements differentiated search guidance strategies based on these parameters. This enables personalized adjustments to the search strategy, facilitating a more refined balance between the overall exploration and development behavior of the group. By reducing the reliance of "explorers" that have recently underperformed on globally optimal solutions that may lead to local optima, and encouraging them to engage in diversified exploration, the risk of premature convergence of the algorithm is effectively reduced. This enhances the global optimization capability, accelerates the convergence speed of the algorithm near high-quality solutions, improves local search efficiency, and enhances the overall performance and robustness of the improved swarm inchworm optimization algorithm in solving complex optimization problems such as robot path planning.
[0125] In some embodiments, updating the individual position by selecting a differential evolution strategy or an energy-driven behavior strategy with a preset probability to obtain the updated individual position includes: selecting individuals with a preset number of mutations as parents, and mutating each parent based on a mutation scale factor to obtain offspring.
[0126] The updated individual position is obtained by performing a differential evolution strategy based on the parent and offspring generations.
[0127] Specifically, in robot path planning applications, when the algorithm executes a competition-cooperation strategy, it selects individuals with a preset number of mutations as parents, and mutates each parent according to a mutation scale factor to obtain offspring. The mutation scale factor is used to dynamically adjust the intensity of the mutation operation based on the success or failure of the individual in the competition-cooperation, so as to balance exploration and development.
[0128] The preset number of mutations can be three, or individuals can be limited to the same set or individuals with the same behavioral pattern. A behavioral pattern refers to the category of wandering, foraging, or molting behavior performed by an individual based on its energy state. Different behavioral patterns represent different search strategy tendencies. A set refers to a grouping such as an elite set or an exploration set based on individual performance.
[0129] Among them, the offspring can be obtained by weighted differential calculation of the selected parent generation through the variation scale factor. Its role is to carry the parent generation information and provide a basis for differential evolution.
[0130] Furthermore, the variation scaling factor can be constrained by preset upper and lower limits. The preset lower and upper limits are pre-set constants used to constrain the range of values of the variation scaling factor. Their function is to ensure that the variation intensity is always within a reasonable range, preventing it from being too large and causing search instability or too small and causing search stagnation. However, the variation scaling factor is randomly selected within its preset upper and lower limits.
[0131] This application embodiment obtains offspring by mutating the parent generation, allowing the parent and offspring to compete and obtain a competitive result. This enables the algorithm to dynamically adjust the intensity of the mutation operation based on the real-time performance of individuals during the search process, thereby more flexibly balancing global exploration and local development capabilities.
[0132] In some embodiments, the method includes: when the energy value of an individual is greater than or equal to a first preset energy threshold, updating the individual position based on a heavy-tailed distribution random step size and a dynamic step size factor related to the energy value and the number of iterations, to obtain the updated individual position;
[0133] When an individual's energy value is greater than zero and less than a first preset energy threshold, the individual's position is updated based on the target orientation, the current individual position, and the random bias vector to obtain the updated individual position;
[0134] If an individual's energy value is less than or equal to zero, a solution is randomly selected from the historical high-quality solutions as the base point, and a random perturbation is applied to update the individual's position, thus obtaining the updated individual position.
[0135] Specifically, in the iterative process of improving the inchworm optimization algorithm, a differentiated position update strategy is adopted according to the different states of the current individual energy value to balance the exploration and development capabilities of the algorithm. The individual energy value is a dynamically changing scalar used to characterize the activity level or search potential of a single search agent (inchworm) in the current iteration cycle. Its role is to directly drive and determine what behavioral patterns the individual should execute in subsequent iterations.
[0136] When an individual's energy value is determined to be greater than or equal to a first preset energy threshold, the position update will be based on a heavy-tailed distribution random step size and a dynamic step size factor. The first preset energy threshold is a fixed value or a value that is dynamically adjusted according to the algorithm stage to trigger the algorithm to perform global exploration behavior. The first preset energy threshold can be set by the algorithm initialization module according to the problem complexity or experience. The heavy-tailed distribution random step size is a random vector that follows a heavy-tailed distribution (such as the Lévy distribution). Its function is to enable the individual to conduct long-distance, non-local random exploration in the search space, which helps to escape the local optimum. The heavy-tailed distribution random step size can be calculated by a specific random number generation module (such as the Lévy flight generator) according to a preset exponential parameter.
[0137] In addition, when the energy value of an individual is greater than zero but less than the first preset energy threshold, it indicates that the individual is in a state of insufficient energy but not yet exhausted. At this time, the position update strategy will be calculated based on the synthetic target direction, the current individual position, and a random bias vector.
[0138] The objective is the endpoint of a desired movement direction calculated by the algorithm for an individual. It is the point pointed to by a vector synthesized by the individual's historical best experience, group elite information or elite individual information, and random exploration components according to weights. The current individual position is obtained from the position update module of the previous iteration. The random bias vector is a random small perturbation vector with the same dimension as the solution space. Its function is to introduce uncertainty in the process of moving towards the objective, avoid the movement direction being too singular and falling into the local development trap, and increase the subtle diversity of the search. This random bias vector can be generated by the random number generation module.
[0139] Furthermore, when the energy value of an individual is less than or equal to zero, it means that the individual's energy has been exhausted, and the current search strategy may have fallen into a local optimum or failed. In this case, the update strategy can be to randomly select a solution from a specially maintained set, i.e., a historical archive of high-quality solutions, as the base point for perturbation.
[0140] Among them, the historical high-quality solution archive is a dynamically updated data structure. The archive management module updates and maintains the historical high-quality solution archive after each iteration based on the solution quality evaluation results. The base point is the coordinate position of the selected historical high-quality solution as the perturbation center in this update. Its basic definition is a specific solution vector randomly extracted from the historical high-quality solution archive. Its role is to provide an individual with energy depletion with a new search starting area that is far away from the current position but has high quality.
[0141] The mechanism of strategy differentiation based on energy state enables the algorithm to manage the search process more finely. At high energy, it focuses on global exploration to cover new areas; at medium energy, it focuses on guided local development to deepen the search; and at zero energy, it restarts through strong perturbations guided by historical experience, effectively coordinating the contradiction between exploration and development in the search process.
[0142] This application's embodiments adaptively switch between three differentiated position update strategies based on the different intervals in which an individual's energy value is located. When energy is sufficient, a strategy combining heavy-tailed distribution and dynamic factors is used for large-scale exploration, effectively expanding the algorithm's search range in the solution space and increasing the probability of discovering new, promising regions. When energy is insufficient but not exhausted, a strategy based on synthetic targets and random biases is used for targeted development, enabling individuals to conduct fine-grained searches in promising regions while maintaining necessary fine-tuning diversity and improving local optimization efficiency. When energy is exhausted, a perturbation restart strategy based on historical high-quality solutions is used, providing a high-quality, heuristic escape mechanism for individuals that have become stagnant, significantly enhancing the algorithm's ability to escape local optima. The synergistic work of these three strategies jointly improves the global convergence speed and solution accuracy of the improved swarm inchworm optimization algorithm in complex optimization problems.
[0143] In some embodiments, updating the energy value corresponding to an individual includes:
[0144] Determine the local density corresponding to the individual's location, and determine the dynamic energy decay value based on the local density;
[0145] Based on the dynamic energy decay value, the individual's energy value, and the preset energy replenishment value, the energy value to be constrained is obtained;
[0146] The updated energy value is obtained by constraining the energy value to be constrained by a preset energy range.
[0147] Specifically, to obtain the local density of an individual's location, the specific method for calculating the local density can be as follows: for each individual in the group, take its current position as the center and calculate the Euclidean distance between it and all other individuals in the group. When the distance is less than a preset neighborhood radius, it is considered that the other individual is located in the neighborhood of the current individual. The more individuals in the neighborhood, the greater the local density value. Alternatively, a continuous kernel function can be used to perform a weighted summation of the distances. The closer the individual is, the greater the weight it contributes, thus obtaining a continuously changing local density value.
[0148] Furthermore, in the application scenario of robot path planning, each individual represents a possible path, and its position is composed of the coordinates of the key nodes of the path. The calculation of local density reflects the aggregation of candidate paths in a specific region of the path solution space. A region with high density indicates that the algorithm has conducted more searches in that region, and may be close to a potential optimal solution region or trapped in a local optimum region.
[0149] In addition, the dynamic energy decay value is determined based on local density. When an individual is in a dense region, the energy decay is accelerated to encourage the individual to switch behaviors more quickly, allowing the individual to make fuller use of the currently potential region; when an individual is in a sparse region, the energy decay is slowed down, allowing the group to fully explore the region.
[0150] Furthermore, based on the dynamic energy decay value, the individual's energy value, and the preset energy replenishment value, the energy value to be constrained is obtained. This energy value is an intermediate calculation variable, representing the individual's energy value after considering dynamic decay but before any potential energy replenishment. The updated energy value is obtained after adhering to the complete energy update rule, and the basic definition of the energy value to be constrained is an intermediate state value in the energy update process.
[0151] The process of updating the constrained energy value involves subtracting the calculated dynamic energy decay value from the individual's current energy value to obtain an intermediate energy value. Then, it is determined whether the individual has obtained a better fitness value (i.e., whether the path cost has been reduced) through position update in this iteration. If a better fitness value has been obtained, a preset energy supplement value or a preset energy supplement value related to the degree of fitness improvement is added to the above intermediate energy value to obtain the constrained energy value; if a better fitness value has not been obtained, the intermediate energy value is determined as the constrained energy value.
[0152] In addition, to ensure that the energy value drives the behavior within an effective range, a preset energy range is used to limit the energy value to be constrained to between the minimum and maximum values of a preset energy range, thus obtaining an updated energy value.
[0153] Furthermore, this update mechanism combines energy consumption (dynamic decay related to local density) with search gains (energy replenishment from fitness improvements), forming a dynamically balanced energy system that can more effectively reflect and respond to state changes during the search process.
[0154] This application's embodiments calculate dynamic energy decay values by introducing the local density of individual locations, thus relating energy consumption to the local exploration state of the search space. When multiple individuals cluster in a certain area, their energy decay is accelerated to encourage faster behavior switching, allowing individuals to fully develop currently promising areas. When individuals are in sparse, underexplored areas, energy decay is slowed down, allowing for more sustained and thorough exploration. Updating energy values based on dynamic decay and fitness improvement feedback achieves refined and adaptive energy management. This series of energy update mechanisms enhances the algorithm's ability to autonomously control the search process in complex optimization problems, avoids the rigidity in switching between exploration and development behaviors caused by fixed energy decay rates, and improves the algorithm's robustness and global convergence efficiency when dealing with multi-peak, high-dimensional problems.
[0155] Figure 3 This is a flowchart illustrating another robot path planning method provided in an embodiment of this application, as shown below. Figure 3 As shown, the process includes the following steps: Hierarchical Elite Guidance Structure: This structure avoids all individuals blindly following a single global optimum, reducing the risk of premature convergence. The group is divided into an "elite set" and an "exploration set," forming a controlled guidance mechanism. This utilizes elite information while maintaining the diversity of the group's search activity.
[0156] Stratification: Prioritizing fitness Individuals classified as elites The rest are exploration sets. .
[0157] ; ; This is a ranking sorted in ascending order of fitness.
[0158] Differentiated Updates: Exploring Individual Sets When calculating the target direction, its social cognition term no longer comes from... Instead, it randomly selects an elite from the elite group. Follow: Drand.
[0159] Calculate dynamic role parameters and adjust development preferences based on individual recent performance.
[0160] ; ; .
[0161] To observe the window size; Count the number of times recent improvements have been successfully made; The higher the level, the more inclined an individual is to "develop".
[0162] Competitive-cooperative updating: This approach incorporates differential evolution principles to increase directional diversity and enhance the ability to escape local optima. In each generation, a certain probability is maintained that some individuals will adopt competitive-cooperative updating.
[0163] The competitive cooperation strategy is executed based on probability; otherwise, the inchworm behavior strategy is executed.
[0164] Strategy A1: Competitive Cooperation (Differential Evolution) Mutation: ; These are the indexes of three randomly selected distinct individuals. This represents the variation scaling factor, used to control the influence of the difference vector.
[0165] Strategy A2: Competition and Cooperation (Differential Evolution) Binomial Crossover:
[0166] ; This represents the crossover probability.
[0167] It is a dimensional index. The dimensions are randomly selected, ensuring that at least one dimension comes from the mutated vector. It's the crossover probability, which controls the mutation vector. Information ratio, using and Competition drives the better-adapted to the next generation.
[0168] Strategy B: Inchworm Behavior: Based on Energy Choose behavior: If (Indicating a wandering state) Indicates the first preset energy threshold:
[0169] ; For the random step size of Levi's flight, For exponential parameters.
[0170] like (Indicating foraging state): The foraging process can be represented as follows: ,in, This represents the updated position of the i-th individual. This represents the current position of the i-th individual in the t-th iteration, where t represents the current iteration number. This represents the target position vector of the i-th individual. Represents a very small positive number;
[0171] like (Representing the molting state): A solution is randomly selected from the external archive as the base point for strong perturbation. The process can be represented as follows: ;in, This represents the updated position of the i-th individual. It represents a gathering of elites. This represents a random bias vector. This indicates the initial step size.
[0172] Dynamic balance of the energy system: linking energy with the quality of the local environment to make behavior switching more in line with the actual search state.
[0173] Local density: .
[0174] Environmental energy field: The rate of energy decay of an individual is no longer constant, but is linked to the "crowding" or "potential" of the current location. ). It is the dynamic attenuation coefficient.
[0175] Dynamic attenuation and replenishment: ;
[0176] ;
[0177] This is an indicator function that replenishes a fixed amount of energy upon success. ; These are the upper and lower limits of energy.
[0178] Levi's flight and local refinement combined with step size: introducing the possibility of long-distance jumps in global exploration, and introducing deterministic local search in local development.
[0179] Use Levi's Flight when wandering: ; The Lévy distribution can produce occasional long-distance jumps, enhancing global exploration.
[0180] Simulated annealing perturbation acceptance: allows individuals to accept inferior solutions with a certain probability, helping the group overcome obstacles in the early stages of iteration. Even when updating individual positions, Also based on probability Acceptance: Deciding whether to accept the new position .
[0181] ;
[0182] ;
[0183] Among them, temperature If accepted, then ,otherwise .
[0184] Maintain a high-quality solution archive to avoid forgetting previously discovered high-quality regions, which can then be used to inspire subsequent searches.
[0185] Establish an archive: Store all non-dominated solutions or solutions better than a threshold found during iterations into a fixed-size archive A. Utilize the archive: When an individual molts or wanders, there is a probability of randomly selecting a solution from archive A as a base point for perturbation or learning. .
[0186] Among them, the Single Inchworm Foraging Optimization (SIFO) algorithm defines an inchworm as an intelligent agent whose state is determined by a position vector. ,energy and individual memory (Historical best position) constitutes the algorithm's optimization process, which is precisely mapped to the switching of three behavioral modes of the inchworm driven by energy.
[0187] Behavior 1: Wandering, i.e., global exploration mode: Trigger condition: when energy is sufficient ( , (The wandering energy threshold).
[0188] Mathematical description: ;in, It is the search step length vector, which controls the search step size; It is a random direction vector; This represents element-wise multiplication. This behavior simulates the aimless random movement of an inchworm in a safe environment, aiming to broadly cover the solution space and avoid getting trapped in local regions. That is, when energy is sufficient, the individual engages in aimless global exploration. Controlling the exploration range and using random vectors to ensure the diversity of the search are key to discovering new areas.
[0189] Behavior 2: Foraging, i.e., localized development and targeted exploration mode: Trigger condition: When energy is insufficient ( ).
[0190] Exploratory search: This is the most ingenious design of the inchworm algorithm, simulating the inchworm raising its head to detect.
[0191] Head (virtual detection point) towards Perform small-area detection in random directions:
[0192] ; Evaluate all The fitness value.
[0193] α is a small scaling factor, meaning that the detection range is smaller than the actual movement step size.
[0194] Probe direction vector : ; : D-dimensional standard normal random vector.
[0195] To test the number of directions, It is a normalized random unit direction vector, where the process of selecting the optimal direction from multiple trial directions can be expressed as: ; ;
[0196] Deterministic selection: Moving to the best-performing probe direction, rather than random selection:
[0197] .
[0198] Energy consumption and replenishment: Movement consumes energy. If the new location is better, the energy is replenished according to the degree of improvement. This establishes a direct feedback between "search costs" and "benefits".
[0199] Behavior 3: Molting, i.e., the reset mechanism that escapes local optima:
[0200] Trigger condition: Energy depleted ( ).
[0201] Metaphor: This represents that the current search strategy has failed (getting stuck in a local optimum).
[0202] Mathematical operations: Individuals "leap" to their historical best position. A random neighborhood nearby ( As a disturbance factor, Let be a D-dimensional random vector following a standard normal distribution. Then, energy... Reset to the initial value. This mechanism preserves the acquired value. At the same time, introducing strong random perturbations is the key to escaping local extrema.
[0203] energy It is the "engine" of the entire algorithm, and its dynamic update rules are as follows:
[0204] Natural decay (per iteration): ; Energy decays linearly. Number of algorithm iterations.
[0205] Supplementary mechanism (when a better solution is found): ;
[0206] ; This is the gain coefficient. To prevent small constants from being divided by zero. The greater the improvement, the more energy is replenished, forming a positive feedback loop.
[0207] Thresholds and Behaviors: If (Wandering threshold), then wander; if If they forage for food; Then the skin will shed.
[0208] The search step length determines the search step size, and its adaptive adjustment is the key to improving performance.
[0209] Expand upon success (find a better solution): Increase step size to explore advantageous areas more quickly.
[0210] Shrink when it fails (no better solution found): Reduce the step size to perform a more refined search in the current area.
[0211] and It is a small positive number. and These are the preset upper and lower limits.
[0212] Assuming by A group of inchworms, each inchworm In the The state expansion for the next iteration is:
[0213] ;in, Individual The group maintains a historical optimal position. In addition, the group also maintains a globally optimal position. .
[0214] The core of the Improved Group Inchworm Foraging Optimization (IGIFO) algorithm lies in the fact that each inchworm's decision-making is not only governed by its own energy state, but also by its perception of group information.
[0215] Location updates incorporating group information: This is the most crucial step in the transition from "solitary" to "social." The inchworm's new location is no longer determined solely by its own state, but rather by a mixture of its own experience, the group's best experience, and random exploration.
[0216] ;
[0217] ; These are weighting coefficients, satisfying... They control the intensity of individual cognition, social cognition, and random exploration, respectively.
[0218] Attracting inchworms to their historical best point (individual experience).
[0219] : Attracting inchworms to the optimal point of group discovery (social learning).
[0220] Random Exploration: This can be a random vector or a "trial search" process similar to that of a single inchworm, used to maintain diversity.
[0221] The final movement direction is towards this synthesized "target point," and the step size is still determined by the search step size. control.
[0222] Energy sharing and pressure mechanisms (group-specific): To simulate competition and cooperation within a group, energy interaction can be introduced.
[0223] Energy transfer is represented as If an individual The location was better than the neighbors. The historical best can be found in Gaining a small amount of energy (simulating the benefits of competition) can lead to "contributing" energy (simulating cooperation or reduced risk of predation). This can encourage groups to gather more quickly towards superior individuals.
[0224] Density-based step size adjustment (territorial awareness): To prevent excessive crowding, density-aware step size adjustment can be introduced. ; When individuals The surrounding companions were very dense ( When the area is high, it will appropriately reduce the step size for intensive development; when the surrounding area is open, it will increase the step size to encourage exploration of new territories. δ is the adjustment coefficient.
[0225] The path planning of a robot must take into account not only the terrain environment and obstacles that may be encountered during the journey, but also the robot's own performance, such as travel constraints, speed constraints, and turning angle constraints.
[0226] Due to limited energy (battery power), the robot faces a maximum travel constraint during operation; the length of the travel path must be limited by the maximum distance traveled. To ensure successful task completion and avoid energy depletion, we assume the maximum safe travel distance is... .
[0227] The total driving distance must meet the following constraints: Where node represents the number of travel segments. Indicates the first The distance traveled in a segment of the journey.
[0228] The turning angle is obtained using the cosine formula for the path. Let the nodes of the previous path segment be... , The robot is expected to turn and run to the path node. The cosine of the angle between the two paths satisfies:
[0229] .
[0230] During path planning, robots may encounter various obstacles, such as fixed obstacles, moving obstacles, and suddenly appearing obstacles. When simulating obstacles, movable grids under a two-dimensional grid map are used to represent them.
[0231] In robot path planning, the cost function is used to measure the merits of different paths, and it also serves as an evaluation function for improving the swarm inchworm optimization algorithm. A well-designed cost function can guide the algorithm to generate safe and efficient paths in complex environments, avoiding obstacles and threat areas. Based on a comprehensive consideration of factors such as maximum travel distance, turning angle constraints, and obstacle / threat area avoidance, the following robot path cost function is constructed:
[0232] ;
[0233] ;
[0234] ;
[0235] ;
[0236] ;
[0237] ;
[0238] in, It is the total number of waypoints in the journey. Indicates distance cost. Indicates the cost of turning angle. Indicates the cost of obstacles and threats. , , These are the weighting coefficients corresponding to each cost item. Indicates the first The coordinates of the path points and This represents the coordinates of the path points adjacent to it. Representing path points and waypoints The minimum distance between the formed path and the obstacle threat.
[0239] Path planning simulation experiments were conducted in the Matlab R2022a environment. To ensure the robot could effectively avoid obstacles and safely reach the target point, the path planning process was based on map rasterization, and threat regions were modeled. Four map models with different numbers of threat regions were set up in the experiment, with raster grid sizes of 20×20, 40×40, 60×60, and 80×80, corresponding to approximately 50, 200, 450, and 800 threat regions, respectively, to simulate map environments of varying complexity. To verify the performance of the IGIFO algorithm in the autonomous obstacle avoidance path planning problem, the Grey Wolf Algorithm (GWO) and Antlion Algorithm (ALO) were introduced as comparative experiments. The population size of all algorithms was uniformly set to 50, the number of iterations was uniformly set to 100, and the priority / weight was set from highest to lowest as threat region, travel distance, and number of turns. The robot's starting point can be uniformly set to (0.5, 0.5), and the target point in the four sets of maps can be set to (19.5, 19.5), (39.5, 39.5), (59.5, 59.5), and (79.5, 79.5) respectively. The simulation results are as follows.
[0240] Figure 4 This is a schematic diagram of a 20×20 raster map simulation result provided in an embodiment of this application, as shown below. Figure 4 As shown, all three algorithms successfully completed obstacle avoidance path planning from the starting point to the end point. The IGIFO algorithm generated the shortest obstacle avoidance path, which is 29.8176 grid cells long. The GWO algorithm's path length is 39.2652 grid cells long. The ALO algorithm's path length is 37.6085 grid cells long. Overall, the IGIFO algorithm generates the most efficient obstacle avoidance path.
[0241] Figure 5 This is a schematic diagram of a 40×40 grid map simulation result provided in an embodiment of this application, as shown below. Figure 5 As shown, all three algorithms successfully completed obstacle avoidance path planning from the starting point to the end point. The IGIFO algorithm generated the shortest obstacle avoidance path, which is 70.4539 grid cells long. The GWO algorithm's path length is 95.2449 grid cells long. The ALO algorithm's path length is 94.3723 grid cells long. Overall, the IGIFO algorithm generates the most efficient obstacle avoidance path.
[0242] Figure 6 This is a schematic diagram of a 60×60 raster map simulation result provided in an embodiment of this application, as shown below. Figure 6 As shown, all three algorithms successfully completed obstacle avoidance path planning from the starting point to the end point. The IGIFO algorithm generated the shortest obstacle avoidance path, which is 130.7254 grid cells long. The GWO algorithm's path length is 163.8973 grid cells long. The ALO algorithm's path length is 169.7576 grid cells long. Overall, the IGIFO algorithm generates the most efficient obstacle avoidance path.
[0243] Figure 7 This is a schematic diagram of an 80×80 raster map simulation result provided in an embodiment of this application, as shown below. Figure 7 As shown, all three algorithms successfully completed obstacle avoidance path planning from the starting point to the end point. The IGIFO algorithm generated the shortest obstacle avoidance path, which is 198.2966 grid cells long. The GWO algorithm's path length is 235.6047 grid cells long. The ALO algorithm's path length is 229.7204 grid cells long. Overall, the IGIFO algorithm generated the most efficient obstacle avoidance path.
[0244] All of the above-mentioned optional technical solutions can be combined in any way to form the optional embodiments of this application, and will not be described in detail here.
[0245] The following are embodiments of the apparatus described in this application, which can be used to execute the embodiments of the method described in this application. For details not disclosed in the apparatus embodiments of this application, please refer to the embodiments of the method described in this application.
[0246] Figure 8 This is a schematic diagram of an energy-driven crowd optimization device provided in an embodiment of this application. Figure 8 As shown, the energy-driven swarm optimization device includes:
[0247] The generation module 810 is used to generate the initial population corresponding to the robot's obstacle avoidance path, and initialize the current position, historical best position and successful improvement statistics for each individual in the initial population.
[0248] The processing module 820 is used to determine the individual fitness of each individual, determine the elite set and the exploration set based on the individual fitness, and determine the dynamic role parameters of each individual based on the number of successful improvements. The elite set is used for local development, and the exploration set is used for global exploration.
[0249] The selection module 830 is used to determine the first goal orientation of individuals in the elite set based on the historical best position and the global best position, determine the second goal orientation of individuals in the exploration set based on the historical best position and the elite position corresponding to the elite set, and adjust the development direction and exploration direction corresponding to the elite set and the exploration set based on the first goal orientation and the second goal orientation. The first goal orientation and the second goal orientation are both dynamically adjusted based on dynamic role parameters to adjust the development and exploration weights.
[0250] The update module 840 is used to update the individual position by selecting a differential evolution strategy or an energy-driven behavior strategy with a preset probability, so as to obtain the updated individual position.
[0251] The iteration module 850 is used to update the energy value of an individual based on the updated individual position, and to determine the optimal population corresponding to the global optimal solution based on the updated individual position and energy value, so as to obtain the robot obstacle avoidance path based on the optimal population.
[0252] In some embodiments, the energy-driven crowd optimization device is used for:
[0253] Based on the preset constraints corresponding to the robot's obstacle avoidance path, initial candidate solutions are generated through random sampling.
[0254] All initial candidate solutions that satisfy the preset boundary conditions are identified as the initial population.
[0255] In some embodiments, the energy-driven crowd optimization device is used for:
[0256] Individual fitness is sorted in ascending order, and individuals ranked within the first preset ratio range are identified as individuals corresponding to the initial elite set, while other individuals are identified as individuals corresponding to the initial exploration set.
[0257] Individuals that expand to the second preset ratio range on both sides of the largest first preset ratio range are identified as optimized individuals. The relative improvement rate of fitness between the individual fitness of each optimized individual in the current iteration number and the corresponding historical best position is determined, wherein the first preset ratio range is greater than the second preset ratio range.
[0258] If the relative improvement rate of fitness of the optimized individuals in the initial exploration set is higher than the relative improvement rate of fitness of any optimized individual in the initial elite set, the optimized individuals in the initial elite set and the initial exploration set are swapped to obtain the elite set and the exploration set.
[0259] In some embodiments, the energy-driven swarm optimization device is used to: determine the first direction vector of individuals in the elite set based on the historical best position and the global best position, and determine the random exploration component based on the first random perturbation vector;
[0260] Development weight and exploration weight are determined based on dynamic role parameters. Development weight is positively correlated with dynamic role parameters, while exploration weight is negatively correlated with dynamic role parameters.
[0261] Multiply the historical optimal position by the development weight, the global optimal position by the preset social weight, and the random exploration component by the exploration weight. Sum these products and normalize the result to obtain the first objective orientation.
[0262] In some embodiments, the energy-driven crowd optimization device is used for:
[0263] Select individuals with a preset number of mutations as parents, and mutate each parent based on a mutation scaling factor to obtain offspring;
[0264] The updated individual position is obtained by performing a differential evolution strategy based on the parent and offspring generations.
[0265] In some embodiments, the energy-driven swarm optimization device is used to: update the individual position based on the heavy-tailed distribution random step size and a dynamic step size factor related to the current energy value and the number of iterations when the individual's energy value is greater than or equal to a first preset energy threshold, so as to obtain the updated individual position;
[0266] When an individual's energy value is greater than zero and less than a first preset energy threshold, the individual's position is updated based on the target orientation, the current individual position, and the random bias vector to obtain the updated individual position;
[0267] If an individual's energy value is less than or equal to zero, a solution is randomly selected from the historical high-quality solutions as the base point, and a random perturbation is applied to update the individual's position, thus obtaining the updated individual position.
[0268] In some embodiments, the energy-driven swarm optimization device is used to: determine the local density corresponding to the individual position of an individual, and determine a dynamic energy decay value based on the local density;
[0269] Based on the dynamic energy decay value, the individual's energy value, and the preset energy replenishment value, the energy value to be constrained is obtained;
[0270] The updated energy value is obtained by constraining the energy value to be constrained by a preset energy range.
[0271] It should be understood that the sequence number of each step in the above embodiments does not imply the order of execution. The execution order of each process should be determined by its function and internal logic, and should not constitute any limitation on the implementation process of the embodiments of this application.
[0272] Figure 9 This is a schematic diagram of the electronic device 9 provided in an embodiment of this application. Figure 9 As shown, the electronic device 9 of this embodiment includes a processor 901, a memory 902, and a computer program 903 stored in the memory 902 and executable on the processor 901. When the processor 901 executes the computer program 903, it implements the steps in the various method embodiments described above. Alternatively, when the processor 901 executes the computer program 903, it implements the functions of each module / unit in the various device embodiments described above.
[0273] Electronic device 9 can be a desktop computer, laptop, handheld computer, cloud server, or other electronic device. Electronic device 9 may include, but is not limited to, processor 901 and memory 902. Those skilled in the art will understand that... Figure 9This is merely an example of electronic device 9 and does not constitute a limitation on electronic device 9. It may include more or fewer components than shown, or different components.
[0274] The processor 901 can be a central processing unit (CPU), or other general-purpose processors, digital signal processors (DSPs), application-specific integrated circuits (ASICs), field-programmable gate arrays (FPGAs), or other programmable logic devices, discrete gate or transistor logic devices, discrete hardware components, etc.
[0275] The memory 902 can be an internal storage unit of the electronic device 9, such as a hard disk or RAM of the electronic device 9. The memory 902 can also be an external storage device of the electronic device 9, such as a plug-in hard disk, Smart Media Card (SMC), Secure Digital (SD) card, Flash Card, etc., equipped on the electronic device 9. The memory 902 can also include both internal and external storage units of the electronic device 9. The memory 902 is used to store computer programs and other programs and data required by the electronic device.
[0276] Those skilled in the art will clearly understand that, for the sake of convenience and brevity, the above-described division of functional units and modules is merely an example. In practical applications, the above functions can be assigned to different functional units and modules as needed, that is, the internal structure of the device can be divided into different functional units or modules to complete all or part of the functions described above. The functional units and modules in the embodiments can be integrated into one processing unit, or each unit can exist physically separately, or two or more units can be integrated into one unit. The integrated unit can be implemented in hardware or as a software functional unit.
[0277] If integrated modules / units are implemented as software functional units and sold or used as independent products, they can be stored in a readable storage medium (e.g., a computer-readable storage medium). Based on this understanding, all or part of the processes in the methods of the above embodiments can also be implemented by a computer program instructing related hardware. The computer program can be stored in a computer-readable storage medium, and when executed by a processor, it can implement the steps of the various method embodiments described above. The computer program may include computer program code, which may be in the form of source code, object code, executable files, or certain intermediate forms. The computer-readable storage medium may include: any entity or device capable of carrying computer program code, recording media, USB flash drives, portable hard drives, magnetic disks, optical disks, computer memory, read-only memory (ROM), random access memory (RAM), electrical carrier signals, telecommunication signals, and software distribution media, etc.
[0278] The above embodiments are only used to illustrate the technical solutions of this application, and are not intended to limit them. Although this application has been described in detail with reference to the foregoing embodiments, those skilled in the art should understand that modifications can still be made to the technical solutions described in the foregoing embodiments, or equivalent substitutions can be made to some of the technical features. Such modifications or substitutions do not cause the essence of the corresponding technical solutions to deviate from the spirit and scope of the technical solutions of the embodiments of this application, and should all be included within the protection scope of this application.
Claims
1. An energy-driven swarm optimization method, characterized in that, include: Generate an initial population corresponding to the robot's obstacle avoidance path, and initialize the current position, historical best position, and successful improvement count statistics for each individual in the initial population; The individual fitness of each individual is determined, an elite set and an exploration set are determined based on the individual fitness, and the dynamic role parameters of each individual are determined based on the number of successful improvements. The elite set is used for local development, and the exploration set is used for global exploration. Based on the historical best position and the global best position, the first goal orientation of the individuals in the elite set is determined, and the second goal orientation of the individuals in the exploration set is determined based on the historical best position and the elite position corresponding to the elite set. Based on the first goal orientation and the second goal orientation, the development direction and exploration direction corresponding to the elite set and the exploration set are adjusted. The first goal orientation and the second goal orientation are both dynamically adjusted based on the dynamic role parameters to adjust the development and exploration weights. The individual position is updated by selecting either a differential evolution strategy or an energy-driven behavior strategy with a preset probability. If the individual's energy value is greater than or equal to a first preset energy threshold, the individual position is updated based on a heavy-tailed distribution random step size and a dynamic step size factor related to the energy value and iteration number. If the individual's energy value is greater than zero and less than the first preset energy threshold, the individual position is updated based on the target orientation, the current individual position, and a random bias vector. If the individual's energy value is less than or equal to zero, a solution is randomly selected from historical high-quality solutions as a base point, and a random perturbation is applied to update the individual position. Based on the updated individual position, the local density corresponding to the individual position is determined, and the dynamic energy decay value is determined based on the local density. Based on the dynamic energy decay value, the energy value of the individual, and the preset energy replenishment value, the energy value to be constrained is obtained. The energy value to be constrained is constrained by the preset energy range to obtain the updated energy value. Based on the updated individual position and the energy value, the optimal population corresponding to the global optimal solution is determined, and the robot obstacle avoidance path is obtained based on the optimal population.
2. The method according to claim 1, characterized in that, The initial population corresponding to the generated robot obstacle avoidance path includes: Based on the preset constraints corresponding to the robot obstacle avoidance path, initial candidate solutions are generated through random sampling. All the initial candidate solutions that satisfy the preset boundary conditions are determined as the initial population.
3. The method according to claim 1, characterized in that, The process of determining the individual fitness of each individual and determining the elite set and the exploration set based on the individual fitness includes: Individual fitness is sorted in ascending order, and individuals ranked within the first preset ratio range are identified as individuals corresponding to the initial elite set, while other individuals are identified as individuals corresponding to the initial exploration set. With the maximum value of the first preset ratio range as the center, individuals that extend to both sides of the second preset ratio range are determined as optimized individuals. The relative improvement rate of fitness between the individual fitness of each optimized individual in the current iteration number and the corresponding historical best position is determined, wherein the first preset ratio range is greater than the second preset ratio range. If the relative fitness improvement rate of the tuned individuals in the initial exploration set is higher than the relative fitness improvement rate of any tuned individual in the initial elite set, the tuned individuals in the initial elite set and the initial exploration set are swapped to obtain an elite set and an exploration set.
4. The method according to claim 1, characterized in that, The process of determining the first goal orientation of individuals in the elite set based on the historical best position and the global best position includes: The first direction vector of the individuals in the elite set is determined based on the historical best position and the global best position, and the random exploration component is determined based on the first random perturbation vector; Development weight and exploration weight are determined based on the dynamic role parameters, wherein the development weight and the dynamic role parameters are positively correlated, and the exploration weight and the dynamic role parameters are negatively correlated. The first target orientation is obtained by multiplying the historical optimal position by the development weight, the global optimal position by the preset social weight, and the random exploration component by the exploration weight, summing the products, and normalizing them.
5. The method according to claim 1, characterized in that, The step of updating the individual position by selecting a differential evolution strategy or an energy-driven behavior strategy with a preset probability to obtain the updated individual position includes: Select the individuals with a preset number of mutations as the parents, and mutate each of the parents based on the mutation scaling factor to obtain the offspring; Based on the parent and child generations, a differential evolution strategy is executed to obtain the updated individual positions.
6. An energy-driven swarm optimization device, characterized in that, include: The generation module is used to generate an initial population corresponding to the robot's obstacle avoidance path, and to initialize the current position, historical best position and successful improvement count statistics for each individual in the initial population. The processing module is used to determine the individual fitness of each individual, determine the elite set and the exploration set based on the individual fitness, and determine the dynamic role parameters of each individual based on the number of successful improvements. The selection module is used to determine the first goal orientation of individuals in the elite set based on the historical best position and the global best position, determine the second goal orientation of individuals in the exploration set based on the historical best position and the elite position corresponding to the elite set, and adjust the development direction and exploration direction corresponding to the elite set and the exploration set based on the first goal orientation and the second goal orientation, wherein the first goal orientation and the second goal orientation are both dynamically adjusted based on the dynamic role parameters to adjust the development and exploration weights. The update module is used to update the individual position by selecting a differential evolution strategy or an energy-driven behavior strategy with a preset probability, thereby obtaining the updated individual position; when the energy value of the individual is greater than or equal to a first preset energy threshold, the individual position is updated based on a heavy-tailed distribution random step size and a dynamic step size factor related to the energy value and the number of iterations, thereby obtaining the updated individual position; when the energy value of the individual is greater than zero and less than the first preset energy threshold, the individual position is updated based on the target orientation, the current individual position, and a random bias vector, thereby obtaining the updated individual position; when the energy value of the individual is less than or equal to zero, a solution is randomly selected from historical high-quality solutions as a base point, and a random perturbation is applied to update the individual position, thereby obtaining the updated individual position. An iterative module is used to determine the local density corresponding to the individual's position based on the updated individual position, determine the dynamic energy decay value based on the local density, obtain the constrained energy value based on the dynamic energy decay value, the individual's energy value, and a preset energy replenishment value, constrain the constrained energy value by a preset energy range, obtain the updated energy value, and determine the optimal population corresponding to the global optimal solution based on the updated individual position and the energy value, so as to obtain the robot obstacle avoidance path based on the optimal population.
7. An electronic device comprising a memory, a processor, and a computer program stored in the memory and executable on the processor, characterized in that, When the processor executes the computer program, it implements the steps of the method as described in any one of claims 1 to 5.
8. A readable storage medium storing a computer program, characterized in that, When the computer program is executed by a processor, it implements the steps of the method as described in any one of claims 1 to 5.
Citation Information
Patent Citations
Oil reservoir inversion method based on differential evolution particle swarm fusion algorithm
CN120654177A
Unmanned aerial vehicle path planning method based on artificial travel mouse optimization algorithm
CN120947652A