Frank–Wolfe Market Making: Notes

19 October 2026

These notes walk through Arbitrage-Free Combinatorial Market Making via Integer Programming by Christian Kroer, Miroslav Dudík, Sébastien Lahaie, and Sivaraman Balakrishnan (EC 2016). They develop the mathematics from trade costs and coherent prices through Bregman projections, Frank–Wolfe, and integer programming.

Read the full notes (PDF, 173 pages)

The central connection is to column generation: Frank–Wolfe builds a mixture of valid market outcomes, while an integer program supplies new outcomes through a linear optimization oracle. The notes work through the resulting profit certificates, including the distinction between a feasible solution and a solver bound when an integer solve is stopped early.

A six-security triangle market runs through the tutorial, connecting the derivations to a worked example and a Python program whose full listing appears in Appendix C. The notes assume familiarity with convex optimization, integer programming, and probability.

For a shorter reading path:

This is the full draft edition, with 22 chapters and appendices. It distinguishes results from the original paper, tutorial derivations, implementation recommendations, and proposed experiments.

Read the original paper (arXiv v2).

CC BY-SA 4.0 David Islip. Last modified: October 19, 2026. Website built with Franklin.jl and the Julia programming language.