mirror of
https://github.com/Akkudoktor-EOS/EOS.git
synced 2026-03-08 23:56:18 +00:00
Some checks failed
Bump Version / Bump Version Workflow (push) Has been cancelled
docker-build / platform-excludes (push) Has been cancelled
pre-commit / pre-commit (push) Has been cancelled
Run Pytest on Pull Request / test (push) Has been cancelled
docker-build / build (push) Has been cancelled
docker-build / merge (push) Has been cancelled
Close stale pull requests/issues / Find Stale issues and PRs (push) Has been cancelled
Validate solution prediction data before processing. If required prediction data is missing, the prediction is skipped instead of raising an exception. Introduce a new configuration file saving policy to improve loading robustness: - Exclude computed fields - Exclude fields set to their default values - Exclude fields with value None - Use field aliases - Recursively remove empty dictionaries and lists - Ensure general.version is always present and correctly set When loading older configuration files, computed fields are now stripped before migration. This further improves backward compatibility and loading robustness. Signed-off-by: Bobby Noelte <b0661n0e17e@gmail.com>
3.4 KiB
3.4 KiB
General Optimization Configuration
:::{table} optimization :widths: 10 20 10 5 5 30 :align: left
| Name | Environment Variable | Type | Read-Only | Default | Description |
|---|---|---|---|---|---|
| algorithm | EOS_OPTIMIZATION__ALGORITHM |
Optional[str] |
rw |
GENETIC |
The optimization algorithm. |
| genetic | EOS_OPTIMIZATION__GENETIC |
Optional[akkudoktoreos.optimization.optimization.GeneticCommonSettings] |
rw |
None |
Genetic optimization algorithm configuration. |
| horizon_hours | EOS_OPTIMIZATION__HORIZON_HOURS |
Optional[int] |
rw |
24 |
The general time window within which the energy optimization goal shall be achieved [h]. Defaults to 24 hours. |
| interval | EOS_OPTIMIZATION__INTERVAL |
Optional[int] |
rw |
3600 |
The optimization interval [sec]. |
| keys | list[str] |
ro |
N/A |
The keys of the solution. | |
| ::: |
Example Input
{
"optimization": {
"horizon_hours": 24,
"interval": 3600,
"algorithm": "GENETIC",
"genetic": {
"individuals": 400,
"generations": 400,
"seed": null,
"penalties": {
"ev_soc_miss": 10
}
}
}
}
Example Output
{
"optimization": {
"horizon_hours": 24,
"interval": 3600,
"algorithm": "GENETIC",
"genetic": {
"individuals": 400,
"generations": 400,
"seed": null,
"penalties": {
"ev_soc_miss": 10
}
},
"keys": []
}
}
General Genetic Optimization Algorithm Configuration
:::{table} optimization::genetic :widths: 10 10 5 5 30 :align: left
| Name | Type | Read-Only | Default | Description |
|---|---|---|---|---|
| generations | Optional[int] |
rw |
400 |
Number of generations to evaluate the optimal solution [>= 10]. Defaults to 400. |
| individuals | Optional[int] |
rw |
300 |
Number of individuals (solutions) to generate for the (initial) generation [>= 10]. Defaults to 300. |
| penalties | dict[str, Union[float, int, str]] |
rw |
required |
A dictionary of penalty function parameters consisting of a penalty function parameter name and the associated value. |
| seed | Optional[int] |
rw |
None |
Fixed seed for genetic algorithm. Defaults to 'None' which means random seed. |
| ::: |
Example Input/Output
{
"optimization": {
"genetic": {
"individuals": 300,
"generations": 400,
"seed": null,
"penalties": {
"ev_soc_miss": 10
}
}
}
}