Implementation of "Optimal Auctions through Deep Learning" (https://arxiv.org/pdf/1706.03459.pdf)
Install the following packages:
- Python 2.7
- Tensorflow
- Numpy and Matplotlib packages
- Easydict -
pip install easydict
Default hyperparameters are specified in regretNet/cfgs/.
Modify the following hyperparameters in the config file specified in regretNet/cfg/.
cfg.train.gd_iter = 0
cfg.train.num_misreports = 100
cfg.val.num_misreports = 100 # Number of val-misreports is always equal to the number of train-misreports
For training the network, testing the mechanism learnt and computing the baselines, run:
cd regretNet
python run_train.py [setting_name]
python run_test.py [setting_name]
python run_baseline.py [setting_name]
setting_no | setting_name |
---|---|
(a) | additive_1x2_uniform |
(b) | unit_1x2_uniform_23 |
(c) | additive_2x2_uniform |
(d) | CA_sym_uniform_12 |
(e) | CA_asym_uniform_12_15 |
(f) | additive_3x10_uniform |
(g) | additive_5x10_uniform |
(h) | additive_1x2_uniform_416_47 |
(i) | additive_1x2_uniform_triangle |
(j) | unit_1x2_uniform |
(k) | additive_1x10_uniform |
(l) | additive_1x2_uniform_04_03 |
(m) | unit_2x2_uniform |
Default hyperparameters are specified in rochetNet/cfgs/.
For training the network, testing the mechanism learnt and computing the baselines, run:
cd rochetNet
python run_train.py [setting_name]
python run_test.py [setting_name]
python run_baseline.py [setting_name]
setting_no | setting_name |
---|---|
(a) | additive_1x2_uniform |
(b) | additive_1x2_uniform_416_47 |
(c) | additive_1x2_uniform_triangle |
(d) | additive_1x2_uniform_04_03 |
(e) | additive_1x10_uniform |
(f) | unit_1x2_uniform |
(g) | unit_1x2_uniform_23 |
Default hyperparameters are specified in utils/cfg.py.
For training the network, testing the mechanism learnt and computing the baselines, run:
cd myersonNet
python main.py -distr [setting_name] or
bash myerson.sh
setting_no | setting_name |
---|---|
(a) | exponential |
(b) | uniform |
(c) | asymmetric_uniform |
(d) | irregular |
-
additive_1x2_uniform: A single bidder with additive valuations over two items, where the items is drawn from U[0, 1].
-
unit_1x2_uniform_23: A single bidder with unit-demand valuations over two items, where the item values are drawn from U[2, 3].
-
additive_1x2_uniform_416_47: Single additive bidder with preferences over two non-identically distributed items, where v1 ∼ U[4, 16]and v2 ∼ U[4, 7].
-
additive_1x2_uniform_triangle: A single additive bidder with preferences over two items, where (v1, v2) are drawn jointly and uniformly from a unit-triangle with vertices (0, 0), (0, 1) and (1, 0).
-
unit_1x2_uniform: A single unit-demand bidder with preferences over two items, where the item values from U[0, 1]
-
additive_1x2_uniform_04_03: A Single additive bidder with preferences over two items, where the item values v1 ∼ U[0, 4], v2 ∼ U[0, 3]
-
additive_1x10_uniform: A single additive bidder and 10 items, where bidders draw their value for each item from U[0, 1].
-
additive_2x2_uniform: Two additive bidders and two items, where bidders draw their value for each item from U[0, 1].
-
unit_2x2_uniform: Two unit-demand bidders and two items, where the bidders draw their value for each item from identical U[0, 1].
-
additive_2x3_uniform: Two additive bidders and three items, where bidders draw their value for each item from U[0, 1].
-
CA_sym_uniform_12: Two bidders and two items, with v1,1, v1,2, v2,1, v2,2 ∼ U[1, 2], v1,{1,2} = v1,1 + v1,2 + C1 and v2,{1,2} = v2,1 + v2,2 + C2, where C1, C2 ∼ U[−1, 1].
-
CA_asym_uniform_12_15: Two bidders and two items, with v1,1, v1,2 ∼ U[1, 2], v2,1, v2,2 ∼ U[1, 5], v1,{1,2} = v1,1 + v1,2 + C1 and v2,{1,2} = v2,1 + v2,2 + C2, where C1, C2 ∼ U[−1, 1].
-
additive_3x10_uniform: 3 additive bidders and 10 items, where bidders draw their value for each item from U[0, 1].
-
additive_5x10_uniform: 5 additive bidders and 10 items, where bidders draw their value for each item from U[0, 1].
Allocation Probabilty plots for unit_1x2_uniform_23 setting learnt by regretNet:
Allocation Probabilty plots for additive_1x2_uniform_416_47 setting learnt by rochetNet:
For other allocation probability plots, check-out the ipython notebooks in regretNet
or rochetNet
folder.
Please cite our work if you find our code/paper is useful to your work.
@article{DFNP19,
author = {Paul D{\"{u}}tting and Zhe Feng and Harikrishna Narasimhan and David C. Parkes and Sai Srivatsa Ravindranath},
title = {Optimal Auctions through Deep Learning},
journal = {arXiv preprint arXiv:1706.03459},
year = {2019},
}