# Swarm Intelligence-Based Multi-Robotics: A Comprehensive Review
## 2 Swarm Intelligence
### Particle Swarm Optimization (PSO)  
PSO [16, 18] is a computational method inspired by the social behavior of birds flocking or fish schooling. It is used to find optimal solutions by having a group of candidate solutions, called particles, move around in the search space according to simple mathematical rules. Each particle adjusts its position based on its own experience and the experience of neighboring particles, aiming to find the best solution. PSO is particularly effective for continuous optimization problems and has been adapted for use in various fields, including multi-robot systems.  
1. A swarm of particles is initialized with random positions and velocities in the search space. Each particle \(i\) has a position vector \(\mathbf{x}_{i}\) and a velocity vector \(\mathbf{v}_{i}\). \[\mathbf{x}_{i}(0) =\text{rand}(\mathbf{x}_{\text{min}},\mathbf{x}_{\text{max}})\] (4) \[\mathbf{v}_{i}(0) =\text{rand}(\mathbf{v}_{\text{min}},\mathbf{v}_{\text{max}})\] (5)
2. The velocity of each particle is updated based on its own best-known position \(\mathbf{p}_{i}\) and the global best-known position \(\mathbf{g}\). \[\mathbf{v}_{i}(t+1)=w\mathbf{v}_{i}(t)+c_{1}r_{1}(\mathbf{p}_{i}(t)-\mathbf{x }_{i}(t))+c_{2}r_{2}(\mathbf{g}(t)-\mathbf{x}_{i}(t))\] (6) where: * \(w\) is the inertia weight. * \(c_{1}\) and \(c_{2}\) are acceleration coefficients. * \(r_{1}\) and \(r_{2}\) are random numbers uniformly distributed in \([0,1]\). * \(\mathbf{p}_{i}(t)\) is the best-known position of particle \(i\). * \(\mathbf{g}(t)\) is the best-known position of the entire swarm.
3. The position of each particle is updated based on its new velocity. \[\mathbf{x}_{i}(t+1)=\mathbf{x}_{i}(t)+\mathbf{v}_{i}(t+1)\] (7)
4. After updating the positions, the algorithm updates each particle's and global best-known positions. \[\text{if}\ f(\mathbf{x}_{i}(t+1))<f(\mathbf{p}_{i}(t))\ \text{then}\ \mathbf{p}_{i}(t+1)= \mathbf{x}_{i}(t+1)\] (8) \[\text{if}\ f(\mathbf{x}_{i}(t+1))<f(\mathbf{g}(t))\ \text{then}\ \mathbf{g}(t+1)= \mathbf{x}_{i}(t+1)\] (9)  
In multi-robot systems, PSO can be used for various optimization tasks such as path planning, formation control, and task allocation. The algorithm's ability to find optimal solutions through collaboration and adaptation makes it suitable for decentralized robotic systems.  
* Path Planning [34, 35]: Robots use PSO to find optimal paths from starting points to destinations. Each robot represents a particle in the swarm, exploring different paths and sharing information about the best-found paths. This enables robots to converge on the shortest or safest paths while avoiding obstacles and minimizing travel time.
* Formation Control [58]: PSO can maintain a specific formation among multiple robots. Each robot adjusts its position to achieve the desired formation by optimizing the distances between itself and neighboring robots. This ensures the robots move cohesively and maintain formation despite environmental disturbances or changes.
* Task Allocation [36, 37]: PSO can optimize the assignment of tasks to multiple robots, ensuring efficient use of resources and balanced workloads. Each particle represents a possible assignment of functions, and the swarm collaborates to find the optimal allocation. This allows the system to dynamically allocate tasks based on current conditions and robot capabilities.