Skip to content

add joss paper #482

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 7 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
235 changes: 235 additions & 0 deletions LICENSE.txt

Large diffs are not rendered by default.

1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ SPDX-License-Identifier: AGPL-3.0-or-later
[![](https://img.shields.io/pypi/l/assume-framework.svg)](https://pypi.org/pypi/assume-framework/)
[![](https://img.shields.io/pypi/status/assume-framework.svg)](https://pypi.org/pypi/assume-framework/)
[![](https://img.shields.io/readthedocs/assume)](https://assume.readthedocs.io/)
[![DOI](https://joss.theoj.org/papers/a8843ad1978808dc593b16437a2a029e/status.svg)](https://joss.theoj.org/papers/a8843ad1978808dc593b16437a2a029e)

[![Try examples in Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://github.com/assume-framework/assume/tree/main/examples/notebooks)

Expand Down
44 changes: 44 additions & 0 deletions codemeta.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
{
"@context": "https://raw.githubusercontent.com/codemeta/codemeta/master/codemeta.jsonld",
"@type": "Code",
"author": [
{
"@id": "https://orcid.org/0000-0001-8345-3889",
"@type": "Person",
"email": "[email protected]",
"name": "Florian Maurer",
"affiliation": "FH Aachen"
},
{
"@id": "https://orcid.org/0000-0003-1897-3671",
"@type": "Person",
"email": "[email protected]",
"name": "Nick Harder",
"affiliation": "Universität Freiburg"
},
{
"@id": "https://orcid.org/0009-0009-1389-4844",
"@type": "Person",
"email": "[email protected]",
"name": "Kim K. Miskiw",
"affiliation": "Karlsruhe Institute of Technology"
},
{
"@id": "https://orcid.org/0000-0002-3347-9922",
"@type": "Person",
"email": "[email protected]",
"name": "Manish Khanra",
"affiliation": "Fraunhofer ISI"
}
],
"identifier": "https://doi.org/10.5281/zenodo.8088760",
"codeRepository": "https://github.com/assume-framework/assume/",
"datePublished": "2024-11-15",
"dateModified": "2024-11-13",
"dateCreated": "2024-11-13",
"description": "ASSUME - Agent-based Simulation for Studying and Understanding Market Evolution",
"keywords": "agent-based, energy market, simulation, reinforcement learning, bidding",
"license": "AGPL-3.0-or-later",
"title": "ASSUME",
"version": "v0.4.3"
}
3 changes: 3 additions & 0 deletions codemeta.json.license
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
SPDX-FileCopyrightText: ASSUME Developers

SPDX-License-Identifier: AGPL-3.0-or-later
123 changes: 123 additions & 0 deletions paper/paper.bib
Original file line number Diff line number Diff line change
@@ -0,0 +1,123 @@
@Comment{
SPDX-FileCopyrightText: ASSUME Developers

SPDX-License-Identifier: AGPL-3.0-or-later
}

@incollection{maurerMarketAbstractionEnergy2023,
title = {Market {{Abstraction}} of {{Energy Markets}} and {{Policies}} - {{Application}} in an {{Agent-Based Modeling Toolbox}}},
booktitle = {Energy {{Informatics}}},
author = {Maurer, Florian and Miskiw, Kim K. and Acosta, Rebeca Ramirez and Harder, Nick and Sander, Volker and Lehnhoff, Sebastian},
editor = {J{\o}rgensen, Bo N{\o}rregaard and Da Silva, Luiz Carlos Pereira and Ma, Zheng},
year = {2023},
month = dec,
volume = {14468},
pages = {139--157},
publisher = {Springer Nature Switzerland},
address = {Cham},
doi = {10.1007/978-3-031-48652-4_10},
isbn = {978-3-031-48652-4},
}

@inproceedings{maurerKnowYourTools2024,
title = {Know {{Your Tools}} - {{A Comparison}} of {{Two Open Agent-Based Energy Market Models}}},
booktitle = {2024 20th {{International Conference}} on the {{European Energy Market}} ({{EEM}})},
author = {Maurer, Florian and Nitsch, Felix and Kochems, Johannes and Schimeczek, Christoph and Sander, Volker and Lehnhoff, Sebastian},
year = {2024},
month = jun,
pages = {1--8},
issn = {2165-4093},
doi = {10.1109/EEM60825.2024.10609021},
}

@inproceedings{miskiwExplainableDeepReinforcement2024,
title = {Explainable {{Deep Reinforcement Learning}} for {{Multi-Agent Electricity Market Simulations}}},
booktitle = {2024 20th {{International Conference}} on the {{European Energy Market}} ({{EEM}})},
author = {Miskiw, Kim K. and Staudt, Philipp},
year = {2024},
month = jun,
pages = {1--9},
issn = {2165-4093},
doi = {10.1109/EEM60825.2024.10608907},
}


@inproceedings{khanraEconomicEvaluationElectricity2024,
title = {Economic {{Evaluation}} of {{Electricity}} and {{Hydrogen-Based Steel Production Pathways}}: {{Leveraging Market Dynamics}} and {{Grid Congestion Mitigation}} through {{Demand Side Flexibility}}},
shorttitle = {Economic {{Evaluation}} of {{Electricity}} and {{Hydrogen-Based Steel Production Pathways}}},
booktitle = {2024 20th {{International Conference}} on the {{European Energy Market}} ({{EEM}})},
author = {Khanra, Manish and Klobasa, Marian and Patil, Parag and Scholz, Daniel},
year = {2024},
month = jun,
pages = {1--6},
issn = {2165-4093},
doi = {10.1109/EEM60825.2024.10608890},
}

@inproceedings{adamsBlockOrdersMatter2024,
title = {Do {{Block Orders Matter}}? {{Impact}} of {{Regular Block}} and {{Linked Orders}} on {{Electricity Market Simulation Outcomes}}},
shorttitle = {Do {{Block Orders Matter}}?},
booktitle = {2024 20th {{International Conference}} on the {{European Energy Market}} ({{EEM}})},
author = {Adams, Johanna and Harder, Nick and Weidlich, Anke},
date = {2024-06},
pages = {1--7},
issn = {2165-4093},
doi = {10.1109/EEM60825.2024.10608956},
}


@article{harderHowSatisfactoryCan2024,
title = {How {{Satisfactory Can Deep Reinforcement Learning Methods Simulate Electricity Market Dynamics}}? {{Bechmarking}} via {{Bi-level Optimization}}},
shorttitle = {How {{Satisfactory Can Deep Reinforcement Learning Methods Simulate Electricity Market Dynamics}}?},
author = {Nick Harder and Lesia Mitridati and Farzaneh Pourahmadi and Anke Weidlich and Jalal Kazempour},
year = {2024},
month = oct,
journal = {Energy Informatics Review},
}


@inproceedings{bublitzAgentbasedSimulationGerman2014,
title = {Agent-Based {{Simulation}} of the {{German}} and {{French Wholesale Electricity Markets}}},
booktitle = {Proceedings of the 6th {{International Conference}} on {{Agents}} and {{Artificial Intelligence}} - {{Volume}} 2},
author = {Bublitz, Andreas and Ringler, Philipp and Genoese, Massimo and Fichtner, Wolf},
year = {2014},
month = mar,
series = {{{ICAART}} 2014},
pages = {40--49},
publisher = {{SCITEPRESS - Science and Technology Publications, Lda}},
address = {Setubal, PRT},
doi = {10.5220/0004760000400049},
urldate = {2023-05-15},
isbn = {978-989-758-016-1},
}

@article{schimeczekAMIRISAgentbasedMarket2023,
title = {{{AMIRIS}}: {{Agent-based Market}} Model for the {{Investigationof Renewable}} and {{Integrated}} Energy {{Systems}}},
shorttitle = {{{AMIRIS}}},
author = {Schimeczek, Christoph and Nienhaus, Kristina and Frey, Ulrich and Sperber, Evelyn and Sarfarazi, Seyedfarzad and Nitsch, Felix and Kochems, Johannes and Ghazi, A. Achraf El},
year = {2023},
month = apr,
journal = {Journal of Open Source Software},
volume = {8},
number = {84},
issn = {2475-9066},
doi = {10.21105/joss.05041},
}

@article{harderFitPurposeModeling2023,
title = {Fit for Purpose: {{Modeling}} Wholesale Electricity Markets Realistically with Multi-Agent Deep Reinforcement Learning},
shorttitle = {Fit for Purpose},
author = {Harder, Nick and Qussous, Ramiz and Weidlich, Anke},
date = {2023-10-01},
journaltitle = {Energy and AI},
shortjournal = {Energy and AI},
volume = {14},
pages = {100295},
issn = {2666-5468},
doi = {10.1016/j.egyai.2023.100295},
url = {https://www.sciencedirect.com/science/article/pii/S2666546823000678},
urldate = {2024-03-03},
abstract = {Electricity markets need to continuously evolve to address the growing complexity of a predominantly renewable energy-driven, highly interconnected, and sector-integrated energy system. Simulation models allow testing market designs before implementation, which offers advantages for market robustness and efficiency. This work presents a novel approach to simulate the electricity market by using multi-agent deep reinforcement learning for representing revenue-maximizing market participants. The learning capability makes the agents highly adaptive, thereby facilitating a rigorous performance evaluation of market mechanisms under challenging yet practical conditions. Through distinct test cases that vary the number and size of learning agents in an energy-only market, we demonstrate the ability of the proposed method to diagnose market manipulation and reflect market liquidity. Our method is highly scalable, as demonstrated by a case study of the German wholesale energy market with 145 learning agents. This makes the model well-suited for analyzing large and complex electricity markets. The capability of the presented simulation approach facilitates market design analysis, thereby contributing to the establishment future-proof electricity markets to support the energy transition.},
keywords = {Agent-based modeling,Electricity markets,Machine learning,Multi-agent reinforcement learning,Reinforcement learning},
file = {/home/maurer/Zotero/storage/88ED8A4Z/S2666546823000678.html}
}
88 changes: 88 additions & 0 deletions paper/paper.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,88 @@
---
title: 'ASSUME - Agent-based Simulation for Studying and Understanding Market Evolution'
tags:
- Python
- agent based modeling
- energy market
- reinforcement learning
- software simulation
authors:
- name: Florian Maurer
orcid: 0000-0001-8345-3889
corresponding: true
equal-contrib: true
affiliation: 1
- name: Nick Harder
orcid: 0000-0003-1897-3671
equal-contrib: true
affiliation: 2
- name: Kim K. Miskiw
orcid: 0009-0009-1389-4844
equal-contrib: true
affiliation: 3
- name: Manish Khanra
orcid: 0000-0002-3347-9922
equal-contrib: true
affiliation: 4

affiliations:
- name: University of Applied Sciences Aachen, Germany
index: 1
- name: Institute for Sustainable Systems Engineering, University of Freiburg, Freiburg, Germany
index: 2
- name: Institute of Information Systems and Marketing, Karlsruhe Institute of Technology, Karlsruhe, Germany
index: 3
- name: Fraunhofer Institute for Systems and Innovation Research, Karlsruhe, Germany
index: 4
date: 13 November 2024
bibliography: paper.bib
---

# Summary

**ASSUME** is an open-source toolbox for agent-based simulations of various energy markets, with a primary focus on European electricity markets. Developed as an open-source model, its objectives are to ensure usability and customizability for a wide range of users and use cases in the energy system modeling community.

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 usage of reinforcement learning strategies. This setup enables research of new market designs and evolving dynamics in energy markets.

# Statement of need

Various open-source agent-based models have been developed for studying energy markets, such as PowerACE [@bublitzAgentbasedSimulationGerman2014] and AMIRIS [@schimeczekAMIRISAgentbasedMarket2023].
Yet, the possible integration of reinforcement learning methods into the behavioral strategies of market agents is currently unique to `ASSUME` and is build upon prior research on multi-agent reinforcement learning [@harderFitPurposeModeling2023].
Simulations which solely rely on rule-based bidding strategy representation, limit the ability to represent future markets or alternative markets designs, as in reality bidding agents would adapt to the new market design.
Most notably, `ASSUME` enables the highest number of simultanelously learning market agents in literature [@miskiwExplainableDeepReinforcement2024].
This feature allows for the exploration of new market designs and emergent dynamics in energy markets using a common open-source simulation framework.
Further unique features of `ASSUME` are the extensive market abstraction which allows to define complex multi-market scenarios as shown in [@maurerMarketAbstractionEnergy2023].
Even redispatch markets and nodal markets are supported, making it possible to represent network constraints and market coupling.
`ASSUME` is designed to provide results which are easily comparable and interactable.
This is set in contrast to other agent-based simulation frameworks, which are often designed to be used for a specific use case.
Instead, various moving parts can be configured, such as the market abstraction, the agent properties and bidding strategies, or the reinforcement learning methods.

# Architecture

`ASSUME` builds on the open-source agent-based simulation library [mango-agents](https://pypi.org/project/mango-agents/) to model the simulation world and to give users continuous feedback during the simulation runs.
Interaction with the results of the simulation is possible through the preconfigured provided Grafana dashboards, which do have direct access to the simulation database.
Additionally, writing the output to CSV files is supported for scenarios in which a database is not available or needed.

![Componental overview of the ASSUME simulation architecture\label{fig:architecture}](../docs/source/img/architecture.svg)

New scenarios can be created by providing CSV files, accessing simulation data from a database or by using the object-oriented API.
The object-oriented API makes it possible to integrate new classes, maket mechanisms and bidding strategies as well.

Less technical users can adjust the examples from the yaml config and csv inputs directly, while new bidding strategies and methods can be implemented using the provided base classes.
This is possible through the decoupled architecture which separates the declaration of simulation behavior from the input data, while allowing to define either externally without changes to the core.
The overview of available classes and the interaction with the world is shown in \autoref{fig:architecture}.
Extensive documentation about these features is available at [https://assume.readthedocs.io/en/latest/](https://assume.readthedocs.io/en/latest/examples_basic.html).
This also includes a variety of notebooks which clarify the usage through examples.

# Publications

`ASSUME` has been used to investigate the usage of complex order types like block bids in wholesale markets [@adamsBlockOrdersMatter2024] as well as for the integration of demand-side flexibility and redispatch markets in [@khanraEconomicEvaluationElectricity2024].
Studies of applicability of reinforcement learning methods in energy markets were tackled in [@harderHowSatisfactoryCan2024], while an analysis of explainable AI methods was applied to `ASSUME` in [@miskiwExplainableDeepReinforcement2024].
For better interoperability with other energy system model data, adapters to interact from `ASSUME` with PyPSA and AMIRIS are available and make a comparison to other renomated market simulation tools possible [@maurerKnowYourTools2024].

# Acknowledgements

This work was conducted as part of the project "ASSUME: Agent-Based Electricity Markets Simulation Toolbox," funded by the German Federal Ministry for Economic Affairs and Energy under grant number BMWK 03EI1052A.
We express our gratitude to all contributors to ASSUME.

# References
3 changes: 3 additions & 0 deletions paper/paper.md.license
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
SPDX-FileCopyrightText: ASSUME Developers

SPDX-License-Identifier: AGPL-3.0-or-later