MOO_TREES
This repository contains scripts for the multi-objective extension of ENTMOOT featured in: .
Please cite this work as:
@article{thebelt2021mootrees,
title={{Multi-objective constrained optimization for energy applications via tree ensembles}},
author={Thebelt, Alexander and Tsay, Calvin and Lee, Robert M and Sudermann-Merx, Nathan and Walz, David and Tranter, Tom and Misener, Ruth},
journal={Applied Energy},
volume={306},
pages={118061},
year={2022},
publisher={Elsevier}
}
Dependencies
- python >= 3.7.4
- numpy >= 1.20.3
- scipy >= 1.6.3
- gurobipy >= 9.1.2
- pyaml >= 20.4.0
- scikit-learn >= 0.24.2
- lightgbm >= 3.2.1
- pybamm >= 0.4.0
For PyBaMM please install this branch https://github.com/pybamm-team/PyBaMM/tree/issue-1575-discharged_energy
, which allows direct access to the discarged_energy
variable. The following command will install the right branch:
pip install git+https://github.com/pybamm-team/[email protected]_energy
Installing Gurobi
The solver software Gurobi is required to run the examples. Gurobi is a commercial mathematical optimization solver and free of charge for academic research. It is available on Linux, Windows and Mac OS.
Please follow the instructions to obtain a free academic license. Once Gurobi is installed on your system, follow the steps to setup the Python interface gurobipy.
Running Experiments
This repo includes the two benchmark problems: (i) windfarm layout optimization which was adapted from here, and (ii) battery optimization which uses PyBaMM to simulate different configurations.
To run experiments please first execute create_init
to generate all initial points for 25 different random seeds for both benchmarks which will be stored in moo_results/bb_init.json
. A directory moo_results
will be created if it doesn't exist already.
Afterwards, you can call main.py
to run experiments:
e.g. python main.py Windfarm 101 10
runs the windfarm benchmark for random seed 101 and evaluation budget 10.
Authors
- Alexander Thebelt (ThebTron) - Imperial College London
- Calvin Tsay (tsaycal) - Imperial College London
- Robert M. Lee - BASF SE
- Nathan Sudermann-Merx (spiralulam) - Cooperative State University Mannheim
- David Walz (DavidWalz) - BASF SE
- Tom Tranter (TomTranter) - Electrochemical Innovation Lab UCL
- Ruth Misener (rmisener) - Imperial College London
License
This repository is released under the BSD 3-Clause License. Please refer to the LICENSE file for details.
Acknowledgements
This work was supported by BASF SE, Ludwigshafen am Rhein, EPSRC Research Fellowships to RM (EP/P016871/1) and CT (EP/T001577/1), and an Imperial College Research Fellowship to CT. TT acknowledges funding from the EPSRC Faraday Institution Multiscale Modelling Project (EP/S003053/1, FIRG003).