Package: assume-framework
ASSUME: Agent-Based Electricity Markets Simulation ToolboxASSUMEis an open-source toolbox for agent-based simulations of European electricity markets, with a primary focus on the German market setup. Developed as an open-source model, its primary objectives are to ensure usability and customizability for a wide range of users and use cases in the energy system modeling community.IntroductionA unique feature of the ASSUME toolbox is its integration ofDeep Reinforcement Learningmethods into the behavioral strategies of market agents. The model offers various predefined agent representations for both the demand and generation sides, which can be used as plug-and-play modules, simplifying the reinforcement of learning strategies. This setup enables research into new market designs and dynamics in energy markets.DocumentationUser DocumentationInstallation GuideInstallationYou can install ASSUME using pip. Choose the appropriate installation method based on your needs:Using pipTo install the core package:pipinstallassume-frameworkTo install with reinforcement learning capabilities:pipinstallassume-framework[learning]We also include market clearing algorithms for complex bids. These clearing algorithms require pyomo and a solver (we use GLPK). To install the package with these capabilities, use:pipinstallassume-framework[optimization]To install with testing capabilities:pipinstallassume-framework[test]Timescale Database and Grafana DashboardsIf you want to benefit from a supported database and integrated Grafana dashboards for scenario analysis, you can use the provided Docker Compose file.Follow these steps:Clone the repository and navigate to its directory:gitclonehttps://github.com/assume-framework/assume.gitcdassumeStart the database and Grafana using the following command:docker-composeup-dThis will launch a container for TimescaleDB and Grafana with preconfigured dashboards for analysis. You can access the Grafana dashboards athttp://localhost:3000.Using Learning CapabilitiesIf you intend to use the reinforcement learning capabilities of ASSUME and train your agents, make sure to install Torch. Detailed installation instructions can be foundhere.Trying out ASSUME and the provided ExamplesTo ease your way into ASSUME we provided some examples and tutorials. The former are helpful if you would like to get an impression of how ASSUME works and the latter introduce you into the development of ASSUME.The TutorialsThe tutorials work completly detached from your own machine on google colab. They provide code snippets and task that show you, how you can work with the software package one your own. We have two tutorials prepared, one for introducing a new unit and one for getting reinforcement learning ready on ASSUME.How to configure a new unit in ASSUME?Coming SoonHow to introduce reinforcement learning to ASSUME?The ExamplesTo explore the provided examples, follow these steps:Clone the repository and navigate to its directory:gitclonehttps://github.com/assume-framework/assume.gitcdassumeQuick Start:There are three ways to run a simulation:Local:pythonexamples/examples.pyUsing the provided Docker setup:If you have installed Docker and set up the Docker Compose file previously, you can select 'timescale' inexamples.pybefore running the simulation. This will save the simulation results in a Timescale database, and you can access the Dashboard athttp://localhost:3000.Using the CLI to run simulations:assume-sexample_01b-db"postgresql://assume:assume@localhost:5432/assume"For additional CLI options, runassume -h.DevelopmentIf you're contributing to the development of ASSUME, follow these steps:Install pre-commit:pipinstallpre-commit
pre-commitinstallTo run pre-commit checks directly, use:pre-commitrun--all-filesCreating DocumentationFirst, create an environment that includes the documentation dependencies:condaenvcreate-fenvironment_docs.yamlTo generate or update the automatically created docs indocs/source/assume*, run:sphinx-apidoc-odocs/source-FaassumeTo create and serve the documentation locally, use:make-Cdocshtml&&python-mhttp.server--directorydocs/build/htmlContributors and FundingThe project is developed by a collaborative team of researchers from INATECH at the University of Freiburg, IISM at Karlsruhe Institute of Technology, Fraunhofer Institute for Systems and Innovation Research, Fraunhofer Institution for Energy Infrastructures and Geothermal Energy, and FH Aachen - University of Applied Sciences. Each contributor brings valuable expertise in electricity market modeling, deep reinforcement learning, demand side flexibility, and infrastructure modeling.ASSUME is funded by the Federal Ministry for Economic Affairs and Climate Action (BMWK). We are grateful for their support in making this project possible.LicenseCopyright 2022-2024ASSUME developers.ASSUME is licensed under theGNU Affero General Public License v3.0. This license is a strong copyleft license that requires that any derivative work be licensed under the same terms as the original work. It is approved by theOpen Source Initiative.