Skip to content

DAC

What Is Dynamic Algorithm Configuration?#

Dynamic Algorithm Configuration (DAC) [Biedenkapp et al., ECAI 2020, Adriaensen et al., JAIR 2022] is a hyperparameter optimization paradigm aiming to find the best possible hyperparameter configuration for a given algorithm instance at every timestep during runtime. DAC can easily be modelled as a contextual MDP and is thus a real-world application of RL.

Dynamic Algorithm Configuration with Mighty#

In order to interface with configurable algorithms, we recommend DACBench. It provides algorithms from different fields as well as artificial benchmarks, all with the OpenAI gym interface.

Select the benchmark you want to run, for example the FunctionApproximationBenchmark, and providing it as the "env" keyword:

python mighty/run_mighty.py 'algorithm=dqn' 'env=FunctionApproximationBenchmark'
The naming here will make Mighty autodetect it as a DACBench environment.

The benchmarks in DACBench have many configuration options. You can use your hydra configs to include your changes, simply add them to the env_kwargs like this:

python run_mighty.py 'algorithm=dqn' 'env=FunctionApproximationBenchmark' '+env_kwargs.dimension=3'

To see the full options for DACBench environments, refer to the DACBench documentation.