Functional and non-functional requirements

This is an attempt to list all of our requirements we have for this framework. I will keep it up-to-date to regularly evaluate our current progress and to spot major challenges and issues early.

Functional Requirements

Unified hyperparameter optimization for all algorithms

Purpose

It should be straightforward to run an optimization for every implemented algorithm in one predefined and well-documented way.

Specific requirements

  • Running multiple optimization trials in parallel
  • Running algorithms that are parallel themselves

Corresponding issues

#57 #42 (closed) #36 (closed)

Unified logging system

Purpose

There should be a global logger class that any implementation can use to record metrics. Options define which logging platforms to use in the background (MLFlow, WandB, Comet.ml, etc.), or the format of locally logged files.

Specific requirements

  • Unified or template-based visualization of environment interactions for videos and display

Corresponding issues

#70 (closed) #69 (closed) #51 (closed) #26 (closed) #22 (closed)

Unified configuration structure

Non-Functional Requirements

It should be easy to get started with reinforcement learning

Corresponding issues

#71 (closed)

It should be easy to implement an idea by extending an algorithm like SAC (using SB3)

Corresponding issues

#65 (closed) #55 (closed) #54 (closed)

It should be easy to add implementations not using SB3 (e.g., Dreamer, HAC, MuZero etc.)

Corresponding issues

#57