Skip to main content

ASSUME - Agent-Based Electricity Markets Simulation Toolbox

Project description

ASSUME: Agent-Based Electricity Markets Simulation Toolbox

Lint Status Code Coverage DOI

ASSUME is 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.

Introduction

A unique feature of the ASSUME toolbox is its integration of Deep Reinforcement Learning methods 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.

Documentation

Installation

You can install ASSUME using pip. Choose the appropriate installation method based on your needs:

Using pip

To install the core package:

pip install assume-framework

To install with testing capabilities:

pip install assume-framework[test]

Timescale Database and Grafana Dashboards

If 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:

  1. Clone the repository and navigate to its directory:
git clone https://github.com/assume-framework/assume.git
cd assume
  1. Start the database and Grafana using the following command:
docker-compose up -d

This will launch a container for TimescaleDB and Grafana with preconfigured dashboards for analysis. You can access the Grafana dashboards at http://localhost:3000.

Using Learning Capabilities

If you intend to use the reinforcement learning capabilities of ASSUME and train your agents, make sure to install Torch. Detailed installation instructions can be found here.

Trying out the Examples

To explore the provided examples, follow these steps:

  1. Clone the repository and navigate to its directory:
git clone https://github.com/assume-framework/assume.git
cd assume
  1. Quick Start:

There are three ways to run a simulation:

  • Local:
python examples/examples.py
  • Using the provided Docker setup:

If you have installed Docker and set up the Docker Compose file previously, you can select 'timescale' in examples.py before running the simulation. This will save the simulation results in a Timescale database, and you can access the Dashboard at http://localhost:3000.

  • Using the CLI to run simulations:
assume -s example_01b -db "postgresql://assume:assume@localhost:5432/assume"

For additional CLI options, run assume -h.

Development

If you're contributing to the development of ASSUME, follow these steps:

  1. Install pre-commit:
pip install pre-commit
pre-commit install

To run pre-commit checks directly, use:

pre-commit run --all-files

Creating Documentation

First, create an environment that includes the documentation dependencies:

conda env create -f environment_docs.yaml

To generate or update the automatically created docs in docs/source/assume*, run:

sphinx-apidoc -o docs/source -Fa assume

To create and serve the documentation locally, use:

make -C docs html && python -m http.server --directory docs/build/html

Contributors and Funding

The 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.

License

Copyright 2022-2023 ASSUME developers.

ASSUME is licensed under the GNU 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 the Open Source Initiative.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

assume_framework-0.2.0.tar.gz (95.5 kB view details)

Uploaded Source

Built Distribution

assume_framework-0.2.0-py3-none-any.whl (112.9 kB view details)

Uploaded Python 3

File details

Details for the file assume_framework-0.2.0.tar.gz.

File metadata

  • Download URL: assume_framework-0.2.0.tar.gz
  • Upload date:
  • Size: 95.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.6.1 CPython/3.11.3 Darwin/23.0.0

File hashes

Hashes for assume_framework-0.2.0.tar.gz
Algorithm Hash digest
SHA256 a3f783528ff3832983ccfbbd87fe332d5763d423d7611064103593b3919dd7dd
MD5 56231df884312a4194a272db8885e3a0
BLAKE2b-256 17de061e65b0627e37a59e7c4f21458cf8393224b437dcbc57da606fabb89ed0

See more details on using hashes here.

File details

Details for the file assume_framework-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: assume_framework-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 112.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.6.1 CPython/3.11.3 Darwin/23.0.0

File hashes

Hashes for assume_framework-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 4b2a14ba7c46112a33cd2b6b8953b2dcfcd5f8b266b12359e3e106e4455586a3
MD5 3467b067cbc4b2a6144c1635fcb9d44e
BLAKE2b-256 79a1b79320ff4fec1f1f31e1747b137c69fd1a68f41797a8e0228a6bdf2fd36b

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page