This folder containts the implementation of the paper "Deep Reinforcement Learning for Sequential Combinatorial Auctions"
The code is written in python3 and requires the following packages
- Numpy
- PyTorch
- Gymnasium
- Stable-baselines3
We consider the following settings:
| Setting | Setting Name | Description |
|---|---|---|
| A | unif | Additive valuations where item values are independent draws from |
| B | asym | Additive valuations where item |
| C | unit | Unit-demand valuations where item values are independent draws over |
| D | 3demand | 3-demand valuations where item values are independent draws over |
| E | comb1 | Subset valuations are independent draws over |
| F | comb2 | Subset valuations are given by |
We consider the following approaches:
| Approach | Train filename |
|---|---|
| PPO | train_PPO.py |
| DP (Symmetric) | train_DPsym.py |
| DP (Combinatorial) | train_DPcomb.py |
| FPI | train_FPI.py |
We consider two menu structures:
| Menu Structure | Filename | Notes |
|---|---|---|
| Combinatorial | bundle.py | Used when num_items <= 10 |
| Entry Fee | entryfee.py | Used when num_items > 10 |
To run PPO, do
python <train_filename> -n <num_agents> -m <num_items> -e <setting_name> -l <learning_rate>
To run DP or FPI, do
python <train_filename> -n <num_agents> -m <num_items> -e <setting_name>
To change other hyperparameters, visit the corresponding file and modify the Args class.
The logfiles can be found in experiments/ folder
Please cite our work if you find our code/paper is useful to your work.
Parts of the code were adapted from Stable-baselines3 and CleanRL packages