Metadata-Version: 2.4
Name: mosade
Version: 0.1.0
Summary: MOSADE: Multi-Objective Self-Adaptive Differential Evolution
Author: Li Jiawei
License-Expression: MIT
Project-URL: Homepage, https://github.com/Levvvi/MOSADE
Project-URL: Repository, https://github.com/Levvvi/MOSADE
Project-URL: Issues, https://github.com/Levvvi/MOSADE/issues
Keywords: multi-objective optimization,evolutionary algorithms,differential evolution,MOSADE,constrained optimization
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Science/Research
Classifier: Intended Audience :: Developers
Classifier: Operating System :: OS Independent
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 :: Software Development :: Libraries :: Python Modules
Requires-Python: >=3.10
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: numpy>=1.24
Requires-Dist: pyyaml>=6.0
Provides-Extra: dev
Requires-Dist: build>=1.2; extra == "dev"
Requires-Dist: pytest>=7.0; extra == "dev"
Requires-Dist: pytest-cov>=4.0; extra == "dev"
Requires-Dist: ruff>=0.6.0; extra == "dev"
Provides-Extra: analysis
Requires-Dist: matplotlib>=3.9; extra == "analysis"
Requires-Dist: scipy>=1.10; extra == "analysis"
Requires-Dist: pandas>=2.0; extra == "analysis"
Provides-Extra: baselines
Requires-Dist: pymoo>=0.6.1; extra == "baselines"
Dynamic: license-file

# MOSADE

MOSADE (Multi-Objective Self-Adaptive Differential Evolution) is a Python
framework for multi-objective optimisation with real-valued decision variables.
It combines multiple differential-evolution mutation strategies,
decomposition-based environmental selection, strategy-level parameter memories,
and epsilon-constraint handling for constrained problems.

## Repository Contents

- `src/mosade/algorithm/`: MOSADE, differential-evolution strategies,
  decomposition, selection, adaptation, archive management, and baseline
  implementations.
- `src/mosade/problems/`: ZDT, DTLZ, WFG, DASCMOP, and real-world CRE benchmark
  problems.
- `src/mosade/metrics/`: hypervolume, IGD, IGD+, GD, spread, and spacing.
- `src/mosade/analysis/`: result merging, plotting, sensitivity analysis, and
  statistical utilities.
- `configs/`: reproducible experiment configurations.
- `scripts/`: command-line runners and result post-processing utilities.
- `tests/`: unit and smoke tests.
- `figures/`, `tables/`, `validation/`: generated outputs and summary data.

Raw per-run experiment directories are written to `results/` and are not tracked
by Git because complete benchmark runs can be large.

## Installation

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

Python 3.10 or newer is required.

## Quick Start

Run the default smoke experiment:

```bash
python scripts/run_experiment.py
```

Run a specific configuration:

```bash
python scripts/run_experiment.py --config configs/smoke_test.yaml
```

Run the test suite:

```bash
pytest
```

See `REPRODUCIBILITY.md` for the recommended workflow for reproducing generated
results.
