https://studiegids.vu.nl/en/courses/2025-2026/E_EORM_OMSThe course focusses on the analysis and optimization of multiagent systems (modeling large systems of agents taking independent decisions). Building on game-theoretic foundations, students learn state-of-the-art techniques to analyze such systems and to design algorithms to reduce the inefficiency caused by selfish behavior. These techniques find their applications, for example, in Traffic Routing, Network Design, Cost Sharing, Resource Allocation and Auction Design.equilibrium strategies of self-interested agents network routing and the price of anarchy computation and inefficiency of equilibria congestion games and cost sharing games auction theory and combinatorial auctions sponsored search auctions mechanism design and the VCG mechanism assignment and matching mechanisms without monetary transfersLectures and tutorials. Exercises will be issued throughout the course and students are expected to present their solutions during the tutorial sessions. In addition, students will have to hand in 1 or 2 take-home assignment(s) (which will be graded).Final exam – Individual assessment Assignments – Group assessmentThe following books contain most of the material we cover in class:Y. Shoham and K. Leyton-Brown, Multiagent Systems, Cambridge University Press, 2009.M. Bichler, Market Design. A Linear Programming Approach to Auctions and Matching, Cambridge University Press, 2017.Recommended further reading:N. Nisan, T. Roughgarden, E. Tardos, and V. V. Vazirani (Editors), Algorithmic Game Theory, Cambridge University Press, 2007.T. Roughgarden, Twenty Lectures on Algorithmic Game Theory, Cambridge University Press, 2016.Additional material (research papers) will be provided via CanvasStudents should have some background knowledge of combinatorial optimization; in particular, they should be familiar with fundamental optimization problems (shortest path, matching, flow, scheduling), algorithms and complexity (exact and approximation algorithms, P vs. NP), and linear and convex programming (duality, KKT conditions).Students should also be comfortable with implementing algorithms in Python.