We introduce and study online conversion with switching costs, a family of online problems that capture emerging problems at the intersection of energy and sustainability. In this problem, an online player attempts to purchase (alternatively, sell) fractional shares of an asset during a fixed time horizon with length
Our experimental code has been written in Python and Cython. We recommend using a tool to manage Python virtual environments, such as Miniconda. There are several required Python packages:
-
functions2.pyx
: Implements shared functions and algorithms in Cython -
experiments.py
: Main Python script for experiments -
advice_experiments.py
: Python script for advice experiments (varying adversarial factor$\xi$ ) -
setup.py
: Setup script for Cython compilation -
solar_loader.py
: Implements simple logic to convert solar radiation data to estimated PV electricity generation traces -
supplemental.py
: Implements occasionally used shared functions -
ForecastsCISO.csv
: Carbon intensity data and machine-learned forecasts for CAISO grid region given by CarbonCast -
solar_radiation.csv
: Solar radiation data for the experiment location given by the NSRDB -
acndata_sessions.json
: EV charging session traces from ACN-Data - plots/: directory, contains CDF plots from main experiment (experiments.py)
- advice_plots/: directory, contains heatmap plot from advice experiment (advice_experiments.py)
Carbon Intensity Data:
Electricity Maps. retrieved 2023. https://www.electricitymaps.com
Carbon Intensity Forecasts:
Diptyaroop Maji, Prashant Shenoy, and Ramesh K. Sitaraman. 2022. CarbonCast: multi-day forecasting of grid carbon intensity. In Proceedings of the 9th ACM International Conference on Systems for Energy-Efficient Buildings, Cities, and Transportation (BuildSys '22). Association for Computing Machinery, New York, NY, USA, 198–207. https://doi.org/10.1145/3563357.3564079
Historical Solar Radiation Data:
Manajit Sengupta, Yu Xie, Anthony Lopez, Aron Habte, Galen Maclaurin, James Shelby, 2018. The National Solar Radiation Data Base (NSRDB). Renew. Sustain. Energy Rev. 89, 51-60. https://doi.org/10.1016/j.rser.2018.03.003.
EV Charging Data set:
Zachary J. Lee, Tongxin Li, and Steven H. Low. 2019. ACN-Data: Analysis and Applications of an Open EV Charging Dataset. In Proceedings of the Tenth ACM International Conference on Future Energy Systems (e-Energy '19). Association for Computing Machinery, New York, NY, USA, 139–149. https://doi.org/10.1145/3307772.3328313
Given a correctly configured Python environment, with all dependencies, one can reproduce our main results by cloning this repository, and running the following in a command line at the root directory:
python experiments.py {SIMULATED SOLAR SYSTEM SIZE (kW)} {SWITCHING COST (β)}
Pass the desired simulated solar system size in kW and the switching cost coefficient python experiments.py 0 20
To reproduce the results testing the impact of adversarial factor
python advice_experiments.py
@inproceedings{lechowicz2024online, title = {{Online Conversion with Switching Costs: Robust and Learning-augmented Algorithms}}, author = {Adam Lechowicz and Nicolas Christianson and Bo Sun and Noman Bashir and Mohammad Hajiesmaili and Adam Wierman and Prashant Shenoy}, year = 2024, month = {Jun}, booktitle = {Proceedings of the 2024 SIGMETRICS/Performance Joint International Conference on Measurement and Modeling of Computer Systems}, location = {Venice, Italy}, publisher = {Association for Computing Machinery}, address = {New York, NY, USA}, series = {SIGMETRICS / Performance '24} }