Skip to content

Computing Bayes Nash Equilibrium Strategies in Auction Games via Simultaneous Online Dual Averaging

Notifications You must be signed in to change notification settings

MOberlechner/soda

Repository files navigation

SODA - Computing BNE in Auctions & Contests

If you find this code helpful and use this code in your research, please cite the following paper. Note that this code is provided for academic research purposes only. This code is not licensed for commercial use.

Computing Bayes Nash Equilibrium Strategies in Auction Games via Simultaneous Online Dual Averaging.
Martin Bichler, Maximilian Fichtl, Matthias Oberlechner
Operations Research, 2023

BibTex for citation
@article{Bichler2023soda,
  author = {Bichler, Martin and Fichtl, Maximilian and Oberlechner, Matthias},
  title = {Computing Bayes Nash Equilibrium Strategies in Auction Games via Simultaneous Online Dual Averaging},
  year = {2023},
  journal = {Operations Research},
}

Projects

The code contains different projects and can be used to reproduce the respective results.

Project Publication
soda Computing Bayes Nash Equilibrium Strategies in Auction Games via Simultaneous Online Dual Averaging.
Martin Bichler, Maximilian Fichtl, Matthias Oberlechner
Operations Research, 2023
Also presented at the 24th ACM Conference on Economics and Computation, 2023
ad_auctions
Low Revenue in Display Ad Auctions: Algorithmic Collusion vs. Non-Quasilinear Preferences.
Martin Bichler, Alok Gupta, Laura Mathews, Matthias Oberlechner
Working Paper, 2024
contests
Computing Bayes Nash Equilibrium Strategies in Crowdsourcing Contests
Martin Bichler, Markus Ewert, Matthias Oberlechner
In 32nd Workshop on Information Technologies and Systems (WITS'22), 2022

What is implemented?

We focus on incomplete-information (Bayesian) games with continuous type and action space. By discretizing the type and action space, and using distributional strategies, we can apply standard (gradient-based) learning algorithms to approximate Bayes-Nash equilibria (BNE) of given mechanisms.

Mechanisms

  • Single-Item Auctions
    first- and second-price auctions with risk-aversion, different utility functions (quasi-linear, return-on-invest, return-on-spent)
  • All-Pay Auctions
    first- and second-price (war of attrition), risk aversion
  • LLG-Auction
    small combinatorial auction with 2 items, 2 local bidders, and 1 global bidder and correlated valuations of local bidders
  • Split-Award Auction
    procurement auction with 2 agents and (dis-)economies of scale
  • Tullock Contests
    different discrimination parameters
  • Crowdsourcing Contests
    similar to allpay auction but with several prizes

Learning Algorithms

  • Dual Averaging
    Gradient ascent with lazy projection, exponentiated gradient ascent
  • Mirror Ascent
    projected gradient ascent, exponentiated gradient ascent
  • Frank-Wolfe Algorithm
  • Fictitious Play

How can I use the code

After setting up the repository (see Installation) you can either run experiments using the method in main.py or you can checkout the notebooks for a more detailed introduction.

Installation

Note: These setup instructions assume a Linux-based OS and uses python 3.8.10 (or higher).

Install virtualenv (or whatever you prefer for virtual envs)

sudo apt-get install virtualenv

Create a virtual environment with virtual env (you can also choose your own name)

virtualenv venv

You can specify the python version for the virtual environment via the -p flag. Note that this version already needs to be installed on the system (e.g. virtualenv - p python3 venv uses the standard python3 version from the system).

activate the environment with

source ./venv/bin/activate

Install all requirements

pip install -r requirements.txt`

Install the soda package.

pip install -e .

You can also run "pip install ." if you don't want to edit the code. The "-e" flag ensures that pip does not copy the code but uses the editable files instead.

Install pre-commit hooks (for development)

Install pre-commit hooks for your project

pre-commit install

Verify by running on all files:

pre-commit run --all-files

For more information see https://pre-commit.com/.

About

Computing Bayes Nash Equilibrium Strategies in Auction Games via Simultaneous Online Dual Averaging

Topics

Resources

Stars

Watchers

Forks