Skip to content

Bat Searching Algorithm

Unique Algorithms

This project implements a Many-Objective Cooperative Bat Searching Algorithm, a nature-inspired metaheuristic used for optimizing complex problems with multiple, often conflicting, objective functions.

The algorithm is based on the echolocation behavior of microbats. In this cooperative variant, the swarm is designed to handle “many-objective” problems, where the goal is to find a set of optimal solutions (Pareto front) across a high-dimensional objective space.

  • Echolocation Simulation: Bats use frequency, loudness, and pulse emission rates to sense distance and find “prey” (optimal solutions).
  • Cooperative Search: Multiple swarms or sub-groups cooperate to explore different regions of the objective space.
  • Fitness Evaluation: Continuous monitoring of best-fit individuals to guide the swarm toward global optima.

Python-Based

Modular implementation using Python for flexible objective function definition.

Swarm Dynamics

Simulates complex group behaviors including velocity updates and local search near the current best solutions.

Many-Objective Support

Designed specifically to handle optimization problems with more than three objectives.

Performance Plotting

Built-in support for visualizing fitness optimization and convergence over time.

  • Python 3.x
  • numpy
  • matplotlib

Install dependencies:

Terminal window
pip install -r requirements.txt
  1. Define Objectives Modify Objective.py to specify the mathematical functions you wish to optimize.

  2. Configure Swarm Adjust bat population and iteration counts in Main.py.

  3. Execute

    Terminal window
    python Main.py
  • Bat.py: Defines the individual agent’s state (position, velocity, frequency).
  • Swarm.py: Manages the collection of bats and the cooperative logic.
  • EA.py: Contains the Evolutionary Algorithm framework and selection operators.
  • Objective.py: Repository of benchmark functions and custom optimization targets.