Metadata-Version: 2.1
Name: jiangpy
Version: 0.1.0
Summary: A swarm intelligence optimization library for simple, rapid construction of improved strategies
Home-page: https://github.com/jiangzhengfengpy/jiangpy
Author: jiangzhengfeng
Author-email: jiangzhengfeng@gxnun.edu.cn
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Science/Research
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
Requires-Python: >=3.8
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: numpy>=1.20.0
Provides-Extra: visualize
Requires-Dist: matplotlib>=3.3.0; extra == "visualize"

# jiangpy

A swarm intelligence optimization library with 120+ algorithms and a pluggable strategy system.

**Design: Algorithm = Base Optimizer + Pluggable Strategies**

## Installation

```bash
pip install jiangpy
```

For visualization support:

```bash
pip install jiangpy[visualize]
```

## Quick Start

```python
import numpy as np
from jiangpy import FloatVar, PSO, HillClimbing, LatinHypercube

def objective(x):
    return np.sum(x ** 2)

problem = {
    "bounds": FloatVar(lb=-10.0, ub=10.0, n_dims=30),
    "minmax": "min",
    "obj_func": objective,
}

model = PSO(pop_size=50, epoch=500)
model.with_init(LatinHypercube())
model.with_local_search(HillClimbing(step_size=0.01))
result = model.solve(problem)
print(f"Best fitness: {result.target.fitness}")
```

## Features

- **120+ optimization algorithms** across swarm, evolutionary, physics, math, bio, and human-inspired categories
- **Pluggable strategies** for initialization, selection, crossover, mutation, local search, and replacement
- **Parallel evaluation** support (single / thread / process)
- **Multi-objective optimization** via weighted sum
- **Benchmark functions** including classical and CEC benchmarks
- **Hyperparameter tuning** via grid search

## Documentation

Run the examples:

```bash
python -m jiangpy.examples_usage
```

## Requirements

- Python >= 3.8
- numpy >= 1.20.0
- matplotlib >= 3.3.0 (optional, for visualization)

## License

MIT
