Metadata-Version: 2.4
Name: swarm-seek
Version: 0.1.1
Summary: Literature-validated Artificial Bee Colony optimization for Python
Author-email: Travis Kessler <travis.j.kessler@gmail.com>
License-Expression: Apache-2.0
Project-URL: Homepage, https://github.com/tjkessler/swarm-seek
Project-URL: Documentation, https://swarm-seek.readthedocs.io/
Project-URL: Repository, https://github.com/tjkessler/swarm-seek
Project-URL: Issues, https://github.com/tjkessler/swarm-seek/issues
Keywords: artificial-bee-colony,abc,swarm-intelligence,optimization,metaheuristic,ask-tell
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Science/Research
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: Scientific/Engineering
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
Classifier: Topic :: Scientific/Engineering :: Mathematics
Requires-Python: >=3.10
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: numpy>=1.24.0
Provides-Extra: dev
Requires-Dist: build>=1.2.0; extra == "dev"
Requires-Dist: pytest>=8.4.0; extra == "dev"
Requires-Dist: pytest-cov>=6.0.0; extra == "dev"
Requires-Dist: ruff>=0.15.0; extra == "dev"
Requires-Dist: pre-commit>=4.0.0; extra == "dev"
Requires-Dist: nbmake>=0.5.0; extra == "dev"
Provides-Extra: docs
Requires-Dist: sphinx>=8.0.0; extra == "docs"
Requires-Dist: furo>=2024.8.6; extra == "docs"
Requires-Dist: sphinx-copybutton>=0.5.2; extra == "docs"
Provides-Extra: numba
Requires-Dist: numba>=0.59.0; extra == "numba"
Provides-Extra: jax
Requires-Dist: jax>=0.4.0; extra == "jax"
Provides-Extra: sklearn
Requires-Dist: scikit-learn>=1.3.0; extra == "sklearn"
Provides-Extra: optuna
Requires-Dist: optuna>=3.0.0; extra == "optuna"
Dynamic: license-file

# Swarm Seek

Literature-validated Artificial Bee Colony (ABC) optimization for Python.

Swarm Seek implements Original ABC and principal peer-reviewed continuous
variants (GABC, qABC, MABC) with a NumPy core, an ask/tell API, and automated
checks against published benchmark figures.

**Status:** `0.1.1` (beta). Continuous ABC core, variants, ask/tell API, and
literature oracles. Docs: https://swarm-seek.readthedocs.io/

## Install

Requires Python 3.10+.

```bash
pip install swarm-seek
```

Editable install for development:

```bash
pip install -e ".[dev]"
```

## Quick start

```python
from swarm_seek import ABC, ContinuousSpace
from swarm_seek.benchmarks import sphere

space = ContinuousSpace([(-5.0, 5.0)] * 5)
colony = ABC(space, variant="original", pop_size=20, limit=100, max_evals=5_000, seed=0)
best = colony.minimize(sphere)
print(best.fitness)
```

Ask/tell loop:

```python
import numpy as np

from swarm_seek import ABC, ContinuousSpace
from swarm_seek.benchmarks import sphere

space = ContinuousSpace([(-5.0, 5.0)] * 5)
colony = ABC(space, variant="gabc", pop_size=20, limit=100, max_evals=5_000, seed=0)

while not colony.converged:
    candidates = colony.ask()
    if candidates.size == 0:
        colony.tell([])
        continue
    colony.tell(np.asarray(sphere(candidates), dtype=np.float64))

print(colony.best.fitness)
```

Runnable notebooks with stated pass criteria live in [`examples/`](examples/).
Full documentation (variants, architecture, API, FAQ) builds from `docs/source/`.

## License

Apache License 2.0. See [LICENSE](LICENSE).

## Citation

See [`CITATION.cff`](CITATION.cff) for citation metadata.
