Algorithmic Game Theory

You are here

Specialization complementary (Advanced Computing)
This subject has not requirements

As Computer Science struggles to understand the Internet and its capabilities, computer scientists are incorporating concepts and methodologies from Economics and Game Theory into their discipline. In the past decade, there has been a tremendous growth in research, centered around the following questions: what game-theoretic tools are applicable to computer systems? How far is the performance of a system from optimality due to the conflict of interests of its users and administrators? How can we design a system whose performance is robust with respect to the potential conflict of interests inside the system?

The course aims to tackle some of the fundamental problems at the interface of Computer Science and Game theory, with an emphasis on algorithms and computational complexity. Our main focus will be on algorithms for equilibria, the computational complexity of finding equilibria, the algorithmic tools in mechanism design for auctions, the stategic behavior models for large networks, and the price of anarchy. Incorporating also some notions from cooperative game theory.


Person in charge

  • Maria Jose Serna Iglesias ( )

Weekly hours

Guided learning
Autonomous learning


Technical Competences of each Specialization

Advanced computing

  • CEE3.1 - Capability to identify computational barriers and to analyze the complexity of computational problems in different areas of science and technology as well as to represent high complexity problems in mathematical structures which can be treated effectively with algorithmic schemes.
  • CEE3.2 - Capability to use a wide and varied spectrum of algorithmic resources to solve high difficulty algorithmic problems.
  • CEE3.3 - Capability to understand the computational requirements of problems from non-informatics disciplines and to make significant contributions in multidisciplinary teams that use computing.

Generic Technical Competences


  • CG1 - Capability to apply the scientific method to study and analyse of phenomena and systems in any area of Computer Science, and in the conception, design and implementation of innovative and original solutions.
  • CG3 - Capacity for mathematical modeling, calculation and experimental designing in technology and companies engineering centers, particularly in research and innovation in all areas of Computer Science.
  • CG5 - Capability to apply innovative solutions and make progress in the knowledge to exploit the new paradigms of computing, particularly in distributed environments.

Transversal Competences


  • CTR6 - Capacity for critical, logical and mathematical reasoning. Capability to solve problems in their area of study. Capacity for abstraction: the capability to create and use models that reflect real situations. Capability to design and implement simple experiments, and analyze and interpret their results. Capacity for analysis, synthesis and evaluation.


  • CB6 - Ability to apply the acquired knowledge and capacity for solving problems in new or unknown environments within broader (or multidisciplinary) contexts related to their area of study.
  • CB8 - Capability to communicate their conclusions, and the knowledge and rationale underpinning these, to both skilled and unskilled public in a clear and unambiguous way.
  • CB9 - Possession of the learning skills that enable the students to continue studying in a way that will be mainly self-directed or autonomous.


  1. Become acquainted with the main techniques and problems in the algorithmic game theory domain and identify their major properties.
    Related competences: CB8, CB9, CTR6, CEE3.1, CEE3.2, CG1,
  2. Examine conditions under which cooperation and antagonism appear. Perform an analysis and extract the fundamental properties of problems from different domains in order to assess the suitability of a game theoretical analysis and its limitations.
    Related competences: CB6, CB9, CTR6, CEE3.1, CEE3.2, CEE3.3, CG5, CG1, CG3,


  1. Introduction to Algorithmic game theory
    Centralized versus decentralized decisions. Games and Internet. Game types, strategies and equilibria.
  2. Strategic games and computational aspects of Nash equilibria
    Strategic games, pure and mixed strategies. Solution concepts. Pure Nash equilibria and the complexity of its computation. Pure Nash equilibria versus local optima: Potential games. Mixed strategies and Nash equilibria. The complexity of computing a Nash equilibria. Mechanism design and games.
  3. Price of anarchy and price of stability
    Definitions. Best and worst Nash equilibria. Routing games and other examples.
  4. A first look at auctions
    Auctions as games. First price and second price auctions. Poperties: truthfulness and efficiency. Traditional auctions.
  5. Ad Auctions and Sponsored Search Auctions
    Mechanism design for multiple slots. Keyword auctions. Generalized second prize auctions. Clinching mechanism.
  6. Games for network problems: Congestion games, selfish routing
    Network Games: utility-based resource allocation. Selfish routing and Congestion games. Nash equilibria and prize of anarchy.
  7. Network creation games
    Strategic network creation: basic models and results. Bilateral contracting and other notions of eqilibria. Best response and ad-hoc dynamics.
  8. Cooperative game theory
    Cooperative and simple games. Types of coalition. Power indices. Examples: voting games, combinatorial games and influence games on social networks.


Research paper presentation

Presentation of a scientific journal article describing a research topic in some of the topics covered in the course or in other related areas of interest to the student.
Guided learning
Autonomous learning
  • Theory: Development of syllabus topics.
Objectives: 1 2

Reading of research papers.

Reading and understanding research papers.
Guided learning
Autonomous learning
Objectives: 1

Teaching methodology

There will be two kinds of classes: theoretical sessions and practical sessions. On average, two hours per week are dedicated to theory and one
hour per week to exercises. The teacher will allocate the hours in accordance to the subject matter.

The theory classes take the form of lectures in which the teacher sets out new concepts or techniques. Complemented with examples illustrating the introduced concepts. Sessions will consist of a presentation of the main topics of each content's item, mainly based in selected original research papers.
A high level of students' participation is expected at each session. Current lines of research in each topic will be discussed at the end of each topics' presentation.

The practical classes are used to carry out exercises in which students take an active part. Usually teachers set the exercises in advance. Students are
required to submit the exercises and then discuss the various solutions/alternatives in class.

Evaluation methodology

Grade = 40% FW + 40% FT + 20% PART

FW = Final Work (graded from 0 to 10) in which each participant is required to present a research paper (previously assigned by the lecturer).
The presentation consists of:
3-5 minutes background on the topic of the paper, and motivation.
1-3 minute overview of the key ideas of the paper.
15 minutes presentation with most important details.
2-5 minutes conclusions and review of research problems or directions left in the paper.

FT = Final test graded from (0 to 10) including all the contents of AGT.

PART = Participation. Active participation: questions and comments, presentations at practice sessions, hand-outs when required.



Previous capacities

Basic knowledge of algorithm analysis methods (in particular asymptotic complexity).
Basic knowledge on algorithms. Linear Programming. Maximum flow. Local search. Graph and Network algorithms.
Basic knowledge on algebraic reasoning.
Basic knowledge on computational complexity, classes and reductions.