Mentions

Quick Overview

An Oracle system is defined by it’s ability to know all possible outcome, in order to deduce the best course of actions. Named after an Oracle, who knows the future.

This is an Oracle System that tries to brute force the best possible combination of actions taken by an agent, in a certain Grid2op environment. It does so by using data from a set of user-fed actions played in a dummy environment that allows any actions. It then finds the best possible course of actions that an agent can take, called “Best path” (computed with or without possibility of overload). Finally, a few KPIs are produced in order to give a quick rundown of the state of the environment initially provided.

This can allow you to test the boundaries of a given network environment, and get a better understanding of the potential weaknesses in the decision making process of an agent

To go through all the steps following a simple usecase, see Didactic example

Features

  • Reads a json with a list of atomic actions (=unitary “action bricks” that affects a single substation or line) - It handles 3 different format to provide these atomic actions through an OracleParser object

  • Creates a set of possible and grid2op-valid actions by computing any possible combination of the atomic actions (the resulting objects are called OracleActions) - In the combinations, we allow only one atomic action per substation

  • Runs the simulation for all OracleActions, and stores the reward in a dataframe

  • Generates a NetworkX graph with each node being a timestep in the aforementioned simulations - The connection between two nodes is given by the gamerule

  • Runs a best path algorithm to deduce a series of action to achieve best results

  • Runs an agent to try the chosen path

  • Computes a few KPIs to better understand the path chosen, as well as cumulated rewards for comparison purposes

Contribute

Support

If you are having issues, please let us know on github

License

Copyright 2020-2021 RTE France

This Source Code is subject to the terms of the Mozilla Public License (MPL) v2.