Metadata-Version: 2.4
Name: daisypy-optim
Version: 0.4.1
Summary: Optimization framework for Daisy
Author-email: Silas Nyboe Ørting <silas@di.ku.dk>
License-Expression: GPL-3.0-or-later
Project-URL: Homepage, https://daisy.ku.dk/
Classifier: Programming Language :: Python :: 3
Requires-Python: >=3.11
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: numpy
Requires-Dist: pandas
Requires-Dist: daisypy-io>=0.2.0
Requires-Dist: matplotlib
Provides-Extra: cma
Requires-Dist: cma; extra == "cma"
Provides-Extra: dev
Requires-Dist: pylint; extra == "dev"
Requires-Dist: pytest; extra == "dev"
Provides-Extra: ax
Requires-Dist: ax-platform; extra == "ax"
Dynamic: license-file

# Optimization framework for [Daisy](https://github.com/daisy-model/daisy)

A python based framework for optimizing parameters in [Daisy](https://github.com/daisy-model/daisy).

## Features
* Multiple optimization methods: a greedy sequential optimizer, CMA-ES, and Bayesian optimizers
* Optimization across multiple scenarios
* Single or multi-objective optimization
* Optimization of parameters in both Daisy (`.dai`) and Python (`.py`) files
* Support for categorical and continuous parameters (depending on optimizer)


## Getting started
The framework is available on https://pypi.org/ and can be installed with pip

```
pip install daisypy-optim
```

By default this will only install the greedy sequential optimizer. For most problems you will want to use either CMA-ES or a Bayesian optimizer. The CMA-ES optimizer can be installed with
```
pip install daisypy-optim[cma]
```

and the Bayesian optimizers with
```
pip install daisypy-optim[ax]
```
Note that the Bayesian optimizers pulls in a lot of dependencies.

## Examples
There are several examples illustrating how to optimize parameters in various situations. They all share a common structure

1. Setup a `DaisyRunner` that knows how to run Daisy
2. Setup a `FileGenerator` that can generate `.dai` and `.py`
3. Define the parameters that should be optimized for
4. Define the objective that should be optimized
5. Setup and run an optimizer

See [doc/examples](doc/examples) for an overview of the examples.
