This repository contains the code accompanying the paper:
Convergence and Inference of Stream SGD, with Applications to Queueing Systems and Inventory Control
If you find this repository helpful in your research, please consider citing our paper.
.
├── inventory # Code for inventory control
├── queue # Code for queueing system
└── README.md
Each directory contains three subdirectories: convergence, inference, and regret, corresponding to the three tasks analyzed in our paper. These subdirectories contain the relevant Python files for each task.
To run an experiment, execute the corresponding main_xxxx_xxx.py file.
For example, to estimate the regret for the queueing system under the M/M/1 setting, run the following command:
cd queue/regret
python main_regret_MM1.pySome experimental setups require additional hyperparameters to be adjusted in the Python files. Key details include:
-
Queueing experiments (M/G/1 setup):
- There is an additional parameter,
csv, representing the squared coefficient of variation. - The paper considers two values for this parameter: 0.5 and 1.5 (see Appendix for details).
- There is an additional parameter,
-
Notation:
- M: Number of repeated experiments.
- alpha: Controls the decay rate of step sizes.
-
Step size selection in queueing experiments:
- We use different step sizes for the two parameters, but both decay at the same rate controlled by alpha.
- Experimentally, using different step sizes improves convergence.
- The parameters p1 and p2 control the ratio of step sizes. The default choice is (p1, p2) = (1, 5).
-
Inventory control experiments:
- There is an additional hyperparameter,
tau, which represents the lead time in the inventory system.
- There is an additional hyperparameter,
We sincerely thank Guiyu Hong for his assistance in preparing the code for the queueing system experiments.