|
1 | | -[TODO] |
2 | | --------------------- |
3 | | -- [???] use some kind of "env.get_state()" when simulating instead of recoding everything "by hand" |
4 | | -- [???] use "backend.get_action_to_set()" in simulate |
5 | | -- [???] model better the voltage, include voltage constraints |
6 | | -- [???] use the prod_p_forecasted and co in the "next_chronics" of simulate |
7 | | -- [???] in deepcopy of env, make tests that the "pointers" are properly propagated in the attributes (for example |
8 | | - `envcpy._game_rules.legal_action` should not be copied when building `envcpy._helper_action_env`) |
9 | | -- [???] add multi agent |
10 | | -- [???] make observation read only / immutable for all its properties (and not just for `prod_p`) |
11 | | -- [???] better logging |
12 | | -- [???] shunts in observation too, for real (but what to do when backend is not shunt compliant to prevent the |
13 | | - stuff to break) |
14 | | -- [???] model agent acting at different time frame |
15 | | -- [???] model delay in observations |
16 | | -- [???] model delay in action |
17 | | -- [???] Code and test the "load from disk" method |
18 | | -- [???] add a "plot action" method |
19 | | -- [???] in MultiEnv, when some converter of the observations are used, have each child process to compute |
20 | | - it in parallel and transfer the resulting data. |
21 | | -- [???] "asynch" multienv |
22 | | -- [???] properly model interconnecting powerlines |
23 | | - |
24 | | -Next few releases |
| 1 | +Work "in progress" |
25 | 2 | --------------------------------- |
26 | 3 |
|
27 | 4 | General grid2op improvments: |
28 | 5 |
|
29 | 6 | - numpy 2 compat (need pandapower for that) |
30 | | -- TODO bug on maintenance starting at midnight (they are not correctly handled in the observation) |
| 7 | +- remove pandapower dependency (have a way to install grid2op without pandapower) |
| 8 | +- better logging |
| 9 | +- have functions that automatically computes topo_vect and switch_state in the backend |
| 10 | + (usefull for solver that will never disconnect or reconnect anything) |
| 11 | +- bug on maintenance starting at midnight (they are not correctly handled in the observation) |
31 | 12 | => cf script test_issue_616 |
32 | | -- TODO A number of max buses per sub |
33 | | -- TODO in the runner, save multiple times the same scenario |
34 | | -- TODO improve type annotation for all public functions |
35 | | -- TODO add a "_cst_" or something for the `const` members of all the classes |
36 | | -- TODO properly document and type hint all public members of all the public classes |
37 | | -- TODO properly implement the copy and "deepcopy" API |
38 | | -- TODO Make the redispatching data independent from the time step (eg instead of "in MW / step" have it in "MW / h") |
| 13 | +- A number of max buses per substation different for each substation |
| 14 | +- in the runner, save multiple times the same scenarios |
| 15 | +- add a "_cst_" or something for the `const` members of all the classes |
| 16 | +- improve type annotation for all public functions |
| 17 | +- properly document and type hint all public members of all the public classes |
| 18 | +- properly implement the copy and "deepcopy" API |
| 19 | +- in deepcopy of env, make tests that the "pointers" are properly propagated in the attributes (for example |
| 20 | + `envcpy._game_rules.legal_action` should not be copied when building `envcpy._helper_action_env`) |
| 21 | +- Make the redispatching data independent from the time step (eg instead of "in MW / step" have it in "MW / h") |
39 | 22 | and have grid2op convert it to MW / step |
| 23 | +- make observation read only / immutable for all its properties (and not just for `prod_p`) |
| 24 | +- in parallel distribute the loading of the time series if using a `MultifolderWithCache` |
| 25 | +- Code and test the "load from disk" method |
| 26 | +- add a "plot action" method |
40 | 27 |
|
41 | 28 | Better multi processing support: |
42 | 29 |
|
43 | 30 | - automatic read from local dir also on windows ! |
44 | | -- TODO doc for the "new" feature of automatic "experimental_read_from_local_dir" |
45 | | -- TODO extend this feature to work also on windows based OS |
46 | | -- TODO finish the test in automatic_classes |
47 | | - |
| 31 | +- doc for the "new" feature of automatic "experimental_read_from_local_dir" |
| 32 | +- extend this feature (automatic "experimental_read_from_local_dir") to work also on windows based OS |
| 33 | +- finish the test in automatic_classes |
| 34 | +- "asynch" multienv |
| 35 | +- in MultiEnv, when some converter of the observations are used, have each child process to compute |
| 36 | + it in parallel and transfer the resulting data. |
48 | 37 |
|
49 | 38 | Features related to gymnasium compatibility: |
50 | 39 |
|
51 | | -- TODO put the Grid2opEnvWrapper directly in grid2op as GymEnv |
52 | | -- TODO faster gym_compat (especially for DiscreteActSpace and BoxGymObsSpace) |
53 | | -- TODO Notebook for tf_agents |
54 | | -- TODO Notebook for acme |
55 | | -- TODO Notebook using "keras rl" (see https://keras.io/examples/rl/ppo_cartpole/) |
56 | | -- TODO example for MCTS https://github.com/bwfbowen/muax et https://github.com/google-deepmind/mctx |
57 | | -- TODO done and truncated properly handled in gym_compat module (when game over |
| 40 | +- put the `Grid2opEnvWrapper` (of the notebooks) directly in grid2op as GymEnv |
| 41 | +- faster gym_compat (especially for DiscreteActSpace and BoxGymObsSpace) |
| 42 | +- Notebook for tf_agents |
| 43 | +- Notebook for acme |
| 44 | +- Notebook using "keras rl" (see https://keras.io/examples/rl/ppo_cartpole/) |
| 45 | +- example for MCTS https://github.com/bwfbowen/muax et https://github.com/google-deepmind/mctx |
| 46 | +- done and truncated properly handled in gym_compat module (when game over |
58 | 47 | before the end it's probably truncated and not done) |
59 | | -- TODO when reset, have an attribute "reset_infos" with some infos about the |
| 48 | +- when reset, have an attribute "reset_infos" with some infos about the |
60 | 49 | way reset was called. |
61 | | -- TODO on CI: test only gym, only gymnasium and keep current test for both gym and gymnasium |
62 | | -- TODO refactor the gym_compat module to have a "legacy" stuff exactly like today |
| 50 | +- on CI: test only gym, only gymnasium and keep current test for both gym and gymnasium |
| 51 | +- refactor the gym_compat module to have a "legacy" stuff exactly like today |
63 | 52 | and the current class only supporting gymnasium (with possibly improved speed) |
64 | | -- TODO in the gym env, make the action_space and observation_space attribute |
| 53 | +- in the gym env, make the action_space and observation_space attribute |
65 | 54 | filled automatically (see ray integration, it's boring to have to copy paste...) |
66 | | -- [???] closer integration with `gymnasium` especially the "register env", being able to |
| 55 | +- closer integration with `gymnasium` especially the "register env", being able to |
67 | 56 | create an env from a string etc. |
68 | 57 |
|
69 | 58 | Grid2op extended features: |
70 | 59 |
|
71 | | -- TODO ForecastEnv in MaskedEnv ! (and obs.simulate there too !) |
72 | | -- TODO in multi-mix increase the reset options with the mix the user wants |
73 | | -- TODO L2RPN scores as reward (sum loads after the game over and have it in the final reward) |
74 | | -- TODO work on the reward class (see https://github.com/Grid2Op/grid2op/issues/584) |
75 | | -- TODO jax everything that can be: create a simple env based on jax for topology manipulation, without |
| 60 | +- ForecastEnv in MaskedEnv ! (and obs.simulate there too !) |
| 61 | +- in multi-mix increase the reset options with the mix the user wants |
| 62 | +- L2RPN scores as reward (sum loads after the game over and have it in the final reward) |
| 63 | +- work on the reward class (see https://github.com/Grid2Op/grid2op/issues/584) |
| 64 | +- jax everything that can be: create a simple env based on jax for topology manipulation, without |
76 | 65 | redispatching or rules |
77 | | -- TODO backend in jax, maybe ? |
| 66 | +- backend in jax, maybe ? |
| 67 | + |
| 68 | +The "simulate" function : |
| 69 | + |
| 70 | +- use some kind of "env.get_state()" when simulating instead of recoding everything "by hand" |
| 71 | +- use "backend.get_action_to_set()" in simulate |
| 72 | +- use the prod_p_forecasted and co in the "next_chronics" of simulate |
| 73 | + |
| 74 | +Better handling of the voltages: |
| 75 | + |
| 76 | +- model better the voltage, include voltage constraints |
| 77 | +- shunts in observation too, for real (but what to do when backend is not shunt compliant to prevent the |
| 78 | + stuff to break) |
| 79 | +- model action on "shunts": |
| 80 | + - either continuous (by default, if no config file) |
| 81 | + - or discrete (more realistic, need a config file) |
| 82 | +- model action related to transformer ratio: |
| 83 | + - either continuous (by default, if no config file) |
| 84 | + - or discrete (more realistic, need a config file) |
| 85 | + |
| 86 | +Other modeling issues: |
| 87 | + |
| 88 | +- model agent acting at different time frame |
| 89 | +- model delay in observations |
| 90 | +- model delay in action |
| 91 | +- model action / observation on phase shifters |
| 92 | +- model action / observation on HDVC powerlines |
78 | 93 |
|
79 | 94 | Native multi agents support: |
80 | 95 |
|
81 | 96 | - cf ad-hoc branch (dev-multiagents) |
| 97 | +- properly model interconnecting powerlines |
82 | 98 |
|
83 | 99 | [1.10.4] - 2024-10-15 |
84 | 100 | ------------------------- |
85 | 101 | - [FIXED] new pypi link (no change in code) |
86 | 102 | - [FIXED] mybinder environment |
87 | 103 | - [FIXED] update all the links in the README.md (for the new grid2op location) |
| 104 | +- [FIXED] update all the links in the docs and the grid2op source files |
| 105 | + (to match new location: Grid2op/grid2op.git) |
| 106 | +- [FIXED] the link in the `make_env` and `update_env` to point to |
| 107 | + https://api.github.com/repos/Grid2Op/grid2op-datasets/ |
88 | 108 | - [IMPROVED] clarity of the "work in progress" in this CHANGELOG |
89 | 109 |
|
90 | 110 | [1.10.4] - 2024-10-14 |
|
0 commit comments