Files
EOS/docs/_generated/configoptimization.md
Bobby Noelte 997e7646e9
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
fix: prevent exception when load prediction data is missing (#925)
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>
2026-03-07 14:46:30 +01:00

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
               }
           }
       }
   }