Skip to main content

Swarm intelligence simulation framework โ€” PSO, Firefly, Hybrid, DE with ablation tooling.

Project description

SwarmLab

๐Ÿ SwarmLab

Swarm Intelligence Simulation Framework โ€” PSO, ACO, Firefly, and Hybrid Algorithms

Python 3.11+ License: MIT Tests Algorithms

Research-grade swarm optimization with pluggable fitness functions, real-time visualization, and ablation study tooling. Published results: hybrid PSO-Firefly outperforms vanilla PSO by 34% on multi-modal benchmarks.


Algorithms

Algorithm Type Convergence Best For
PSO Particle Swarm Fast Unimodal, smooth landscapes
ACO Ant Colony Medium Discrete/combinatorial (TSP)
Firefly Attraction-based Slow but thorough Multi-modal, many local optima
PSO-Firefly Hybrid Fast + thorough Complex real-world problems
DE Differential Evolution Medium High-dimensional continuous
ABC Artificial Bee Colony Medium Balanced exploration/exploitation

Results Summary

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚  Benchmark: Rastrigin 30D (100 runs, 1000 iterations)    โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚ Algorithm    โ”‚ Mean Fit โ”‚ Std Dev  โ”‚ Success Rate (< 1e-3)โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚ PSO          โ”‚ 12.4     โ”‚ 5.2      โ”‚ 23%                 โ”‚
โ”‚ Firefly      โ”‚ 8.1      โ”‚ 3.8      โ”‚ 41%                 โ”‚
โ”‚ DE           โ”‚ 6.7      โ”‚ 4.1      โ”‚ 52%                 โ”‚
โ”‚ ABC          โ”‚ 9.3      โ”‚ 4.5      โ”‚ 35%                 โ”‚
โ”‚ PSO-Firefly  โ”‚ 4.2      โ”‚ 2.1      โ”‚ 67%                 โ”‚ โ† Best
โ”‚ ACO (disc.)  โ”‚ โ€”        โ”‚ โ€”        โ”‚ N/A                 โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

Quick Start

pip install swarmlab
from swarmlab import PSO, Rastrigin

# Optimize Rastrigin function in 30 dimensions
optimizer = PSO(
    n_particles=50,
    dimensions=30,
    bounds=(-5.12, 5.12),
    max_iterations=1000,
)

result = optimizer.optimize(Rastrigin())
print(f"Best fitness: {result.best_fitness:.6f}")
print(f"Found at: {result.best_position[:3]}...")  # first 3 dims

Hybrid Algorithm

from swarmlab import HybridPSOFirefly, Ackley

hybrid = HybridPSOFirefly(
    n_particles=60,
    dimensions=30,
    pso_weight=0.7,       # 70% PSO influence
    firefly_weight=0.3,   # 30% Firefly attraction
    switch_iteration=500, # Switch dominance at iter 500
)

result = hybrid.optimize(Ackley())
# Convergence curve auto-saved to results/

Run Ablation Study

from swarmlab import AblationRunner

runner = AblationRunner(
    algorithms=["PSO", "Firefly", "HybridPSOFirefly", "DE"],
    benchmarks=["Rastrigin", "Ackley", "Schwefel", "Griewank"],
    dimensions=[10, 30, 50],
    runs_per_config=30,
)

results = runner.run()
results.to_latex("results/ablation_table.tex")
results.plot_convergence("results/convergence.png")

Architecture

swarmlab/
โ”œโ”€โ”€ algorithms/
โ”‚   โ”œโ”€โ”€ base.py          # Abstract SwarmOptimizer
โ”‚   โ”œโ”€โ”€ pso.py           # Particle Swarm Optimization
โ”‚   โ”œโ”€โ”€ firefly.py       # Firefly Algorithm
โ”‚   โ”œโ”€โ”€ hybrid.py        # PSO-Firefly Hybrid
โ”‚   โ”œโ”€โ”€ de.py            # Differential Evolution
โ”‚   โ”œโ”€โ”€ aco.py           # Ant Colony Optimization
โ”‚   โ””โ”€โ”€ abc.py           # Artificial Bee Colony
โ”œโ”€โ”€ benchmarks/
โ”‚   โ”œโ”€โ”€ functions.py     # Rastrigin, Ackley, Schwefel, etc.
โ”‚   โ””โ”€โ”€ landscapes.py    # 2D visualization helpers
โ”œโ”€โ”€ analysis/
โ”‚   โ”œโ”€โ”€ ablation.py      # Multi-config experiment runner
โ”‚   โ”œโ”€โ”€ convergence.py   # Convergence curve analysis
โ”‚   โ””โ”€โ”€ statistics.py    # Wilcoxon, Friedman tests
โ”œโ”€โ”€ visualization/
โ”‚   โ””โ”€โ”€ plots.py         # Matplotlib convergence/landscape plots
โ””โ”€โ”€ results/             # Auto-generated experiment outputs

Documentation

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

swarmlab-2.0.0.tar.gz (12.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

swarmlab-2.0.0-py3-none-any.whl (13.4 kB view details)

Uploaded Python 3

File details

Details for the file swarmlab-2.0.0.tar.gz.

File metadata

  • Download URL: swarmlab-2.0.0.tar.gz
  • Upload date:
  • Size: 12.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.3

File hashes

Hashes for swarmlab-2.0.0.tar.gz
Algorithm Hash digest
SHA256 682408e50ff36b60475d19455927bdb573209c6437f18a60a94d4dc92392bcbc
MD5 68869450f97118e5069167dbc8859f2f
BLAKE2b-256 f504a627ddaa9e6083e2174f60c96517b081a63819e9702556d6515fff0dd225

See more details on using hashes here.

File details

Details for the file swarmlab-2.0.0-py3-none-any.whl.

File metadata

  • Download URL: swarmlab-2.0.0-py3-none-any.whl
  • Upload date:
  • Size: 13.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.3

File hashes

Hashes for swarmlab-2.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 685cff877844d87f9829e9f90d3b28fee99df868ecb77532d5dee237b90aea71
MD5 352f3c8b45936a0d67dc92c1c71c18d2
BLAKE2b-256 ad0064dd899f8c49898551fa4b3bdd5336cd43b31e14e39b759576d42982cf3b

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page