Release Notes#

Upcoming Release#

Warning

The features in this section are not released yet, but will be part of the next release! To use the features already you have to install the main branch, e.g. pip install git+https://github.com/assume-framework/assume

v0.4.1 - latest release (8th October 2024)#

New Features:

  • improve LSTM learning strategy (#382)

  • add python 3.12 compatibility (#334)

  • manual strategy for interactive market simulation (#403)

Improvements:

  • add the ability to define the solver for the optimization-based market clearing inside the param_dict of the config file (#432)

  • shallow clone in Jupyter notebooks so that cloning is faster (#433)

  • fixes in storage operation bidding (#417)

  • update GitHub Actions versions (#402)

Bug Fixes: - add compatibility with pyyaml-include (#421) - make complex clearing compatible to RL (#430) - pin PyPSA to remove DeprecationWarnings for now (#431)

v0.4.0 - latest release (8th August 2024)#

New Features:

  • Market Coupling: Users can now perform market clearing for different market zones with given transmission capacities. This feature allows for more realistic simulation of market conditions across multiple interconnected regions, enhancing the accuracy of market analysis and decision-making processes. A tutorial on how to use this feature is coming soon.

  • Adjust the Framework to Schedule Storing to the Learning Role: This enhancement enables Learning agents to participate in sequential markets, such as day-ahead and intraday markets. The rewards are now written after the last market, ensuring that the learning process accurately reflects the outcomes of all market interactions. This improvement supports more sophisticated and realistic agent training scenarios. A tutorial on how to use this feature is coming soon.

  • Multiprocessing: Using a command line option, it is now possible to use run each simulation agent in its own process to speed up larger simulations. You can read more about it in Distributed Simulation

  • Steel Plant Demand Side Management Unit: A new unit type has been added to the framework, enabling users to model the demand side management of a steel plant. This feature allows for more detailed and accurate simulations of industrial energy consumption patterns and market interactions. This unit can be configured with different components, such as the electric arc furnace, electrolyzer, and hot storage, to reflect the specific characteristics of steel production processes. The process can be optimized to minimize costs or to maximize the available flexibility, depending on the user’s requirements. A tutorial and detailed documentation on how to use this feature are coming soon.

  • LSTM Actor Architectures: The framework now supports long short-term memory (LSTM) networks as actor architectures for reinforcement learning. This feature enables users to apply more advanced neural network architectures to their learning agents, enhancing the learning process and enabling more accurate and efficient decision-making especially with time series data.

Improvements:

  • Significant speed up of the framework and especially of the learning process

  • Separated scenario loader function to improve speed and reduce unrequired operations

  • Refactored unit operator by adding a seperate unit operator for learning units

  • Enhanced learning output and path handling

  • Updated dashboard for better storage view

  • Improved clearing with shuffling of bids, to avoid bias in clearing of units early in order book

  • Introduced a mechanism to clear the market according to defined market zones while maintaining information about individual nodes, enabling the establishment of specific market zones within the energy market and subsequent nodal-based markets such as redispatch.

  • Added zones_identifier to the configuration file and zone_id to the buses.csv, and refactored the complex market clearing algorithm to incorporate zone information, ensuring that bids submitted with a specific node are matched to the corresponding market zone.

  • If any values in the availability_df.csv file are larger than 1, the framework will now warn the user and run a method to normalize the values to [0, 1].

  • Examples have been restructed to easier orientation and understanding: example_01.. cover all feature demonstration examples, example_02.. cover all learning examples, example_03.. cover all full year examples

  • Added the option of integrating different actor network architectures to the reinforcement learning algorithm, currently a multilayer perceptron (mlp) and long short-term memory (lstm) are implemented

Bug Fixes:

  • Fix learning when action dimension equals one

  • Fixed Tutorial 5

  • Correctly calculated timezone offsets

  • Improved handling of rejected bids

  • Fix the error that exploration mode is used during evaluation

  • Fix double dispatch writing

  • Fixed complex clearing with pyomo>=6.7

  • Resolved various issues with learning and policy saving

  • Fixed missing market dispatch values in day-ahead markets

  • Added a check for availability_df.csv file to check for any values larger than 1

  • Fixed compatibility issues between new pyomo and RL due to tensor handling

Other Changes:

  • Added closing word and final dashboard link to interoperability tutorial

v0.3.7 (21st March 2024)#

New Features:

  • Added Contract Market with feed-in policy and market premium (#248)

  • Introduced basic grid visualization (#305)

  • Added PyPSA loader (#311)

  • Implemented interoperability tutorial (#323)

Improvements:

  • Updated how Pyomo markets are imported (#310)

  • Added ARM docker platform support (#312)

  • Updated Grafana docker version to latest (#316)

  • Adjusted scenario loaders (#317)

  • Prepared ASSUME for proper nodal pricing integration (#304)

Bug Fixes:

  • Fixed bugs in tutorial 6 (#324)

  • Set correct compose.yml mount for docker (#320)

Other Changes:

  • Added Code of Conduct (#313)

  • Added fixed Pyomo version to avoid warnings (#325)

  • Increased version to 0.3.7 for latest release (#327)

v0.3.6 (22nd February 2024)#

Improvements:

  • Updated GitHub actions (#296, #297)

  • Silenced output of Gurobi by specifying a non-logging environment (#300)

  • Fixed writing of market_dispatch and dispatch for other product types (#301)

  • Fixed datetime warning (#302)

Bug Fixes:

  • Fixed Tutorial 2 (#299)

  • Fixed string conversion of paths (#307)

Documentation:

  • Added a tutorial for advanced order types and documentation for complex clearing (#303)

Other Changes:

  • Moved DMAS bidding strategies into try-except block since Pyomo is not a required dependency (#308)

v0.3.5 (14th February 2024)#

New Features:

  • Introduced the redispatch module for congestion management

  • Implemented cost-based and market-based redispatch strategies

  • Added support for “pay as bid” and “pay as clear” market methods in redispatch

Improvements:

  • Changed strategy allocation to use market names instead of product types (#289)

  • Implemented overall scenario loading improvements

Bug Fixes:

  • Fixed issues with storage operations (#291)

  • Removed empty bid as a method of bidding strategy (#293)

  • Cleaned up hard-coded EOM references (#294)

v0.3 (6th February 2024)#

New Features:

  • Added Data Request mechanism (#247)

  • Implemented block order and linked order with respective market clearing mechanism (#269)

  • Added MASTR based OEDS loader

  • Introduced AMIRIS Scenario loader

Improvements:

  • Added “Open in Colab” to notebooks (#258)

  • Improved data_dict usage (#274)

Bug Fixes:

  • Fixed calculation of marginal cost and output_before (#250)

  • Adjusted query of reward during training (#256)

  • Fixed calculation of flexible storage bids (#260)

  • Fixed RL evaluations (#280)

Documentation:

  • Added basic tutorials 01 and 02 (#257)

  • Created Custom Unit and Custom Strategy tutorial (#262)

  • Added tutorial for EOM and LTM comparison (#265)

  • Updated dependencies and installation instructions (#282)

  • Added additional clearing and strategy docs (#283)

Other Changes:

  • Added reuse compliance

  • Moved scenario loaders to separate folder (#264)

  • Added automatic assignment of RL units to one RL unit operator (#276)

v0.2.1 (3rd November 2023)#

Improvements:

  • Improved distribution of current time to agents running in shadow container in different processes (#199)

Bug Fixes:

  • Fixed loading of learned strategies (#219)

Documentation:

  • Added RL Documentation (#221)

Other Changes:

  • Added AMIRIS scenario loader (#224)

  • Added shields badges to README (#223)

  • Fixed issues for running distributed scenario with MQTT (#222)

v0.2.0 (30th September 2023)#

New Features:

  • Added support for CUDA-enabled devices for learning

  • Implemented tracking of evaluation periods for better learning performance evaluation

  • Added capability to start several simulations in parallel

Improvements:

  • Enhanced learning performance

  • Addressed storage units behavior bugs

Other Changes:

  • Added new Grafana dashboard definitions for easier analysis

  • Updated Docker compose file to include Renderer for saving plots directly from Grafana dashboards

v0.1.0 - Initial Release (12th September 2023)#

This is the initial release of the ASSUME Framework, published to PyPi.

Key Features:

  • Ability to define different energy market designs

  • Includes reinforcement learning capabilities

The ASSUME Framework allows users to model and simulate various energy market designs while incorporating reinforcement learning techniques for advanced analysis and optimization.