Welcome to gym-anm!

Train reinforcement learning agents to manage electricity networks.


What is it?

gym-anm is a framework for designing reinforcement learning (RL) environments that model Active Network Management (ANM) tasks in electricity distribution networks.

RL is a vibrant field, but it still heavily relies on the availability of software-based simulators of the real world to design and train its agents.

Unfortunately, power systems are complex dynamical systems and their modelling often requires extensive knowledge in power system engineering. We believe this is the main reason why decision-making problems in power systems have drawn less attention over the last decade than other domains in which RL has been successfully and extensively applied, such as the fields of games, robotics, and autonomous driving.

On the other side, few researchers in the field of power system control have the necessary background knowledge to understand, stay up-to-date with, and apply the latest research in RL to their own problems.

The gym-anm framework was thus designed with one goal in mind: bridge the gap between research in RL and in the management of power systems. We attempt to do this by providing RL researchers with an easy-to-work-with library of environments that model decision-making tasks in power grids.

Key features

  • Very little background in electricity systems modelling is required. This makes gym-anm an ideal starting point for RL students and researchers looking to enter the field.

  • The environments (tasks) generated by gym-anm follow the OpenAI Gym framework, with which a large part of the RL community is already familiar.

  • The flexibility of gym-anm, with its different customizable components, makes it a suitable framework to model a wide range of ANM tasks, from simple ones that can be used for educational purposes, to complex ones designed to conduct advanced research (see Designing New Environments).


An example of an environment built with the gym-anm framework is the ANM6Easy-v0 task, which comes with its own rendering tool: