Index

Module 01 · Game TheoryThe Math of Strategy

Dominant Strategies & Nash Equilibrium

Dominant Strategies and Nash Equilibrium
Dominant Strategies and Nash Equilibrium · Open board

What Is a Game? gave you the shape of a game: players, moves, a table of who gets what. This board is where you learn to read that table and predict where it settles - not the outcome everyone would like, but the one nobody can improve on alone.

Before you start. You need one thing from What Is a Game?: a game is any situation where what you get depends on a choice someone else makes too, and every combination of choices can be written as a table of numbers. Nothing else - no probability, no algebra beyond comparing which of two numbers is bigger.

1838: two spring owners who can’t stop guessing

In 1838 a French economist named Antoine Augustin Cournot worked out a puzzle about two mineral-water springs. Each owner could pump as much water as they liked at almost no cost, and both sold into the same town, so the price depended on the total that showed up. Flood the market and the price collapses for both. Hold back while the other floods it, and the other takes the town’s money alone.

Neither owner could just pick an amount and be done - each had to guess how much the other would bring, decide their own amount, watch what happened, and guess again. Cournot worked the guessing through on paper and found something strange: after enough rounds, both stopped changing their amount, not because they’d agreed on anything (they never spoke) but because each was already pumping the best amount they could given the other. That stopping point had no name for more than a hundred years, and it sits underneath everything in this lesson.

What each of you walks away with

Picture a smaller version of the same problem: two coworkers, You and Them, choosing between two moves without seeing the other’s pick. Call your moves Up and Down, theirs Left and Right. What you each get depends on both choices, so write down all four combinations, your number first and theirs second in every cell:

Them: LeftThem: Right
You: Up4, 43, 2
You: Down2, 31, 1

Up-Left pays you 4 and them 4. Down-Right pays you 1 and them 1. What each of you gets from a combination of choices is your payoff. The choice you commit to before seeing the other’s move is your strategy.

The move that wins no matter what

Look at your two moves on their own. Against Left, Up pays you 4 and Down pays 2 - Up wins. Against Right, Up pays 3 and Down pays 1 - Up still wins. It doesn’t matter what Them does: Up is always at least as good, so you don’t even have to guess their move. A choice that wins no matter what anyone else does is a dominant strategy.

Them has one too: against Up, Left pays them 4 and Right pays 2; against Down, Left pays 3 and Right pays 1. Left wins either way. When you both have a dominant move, you each just play it - Up and Left - without guessing anything about the other person.

1950: the proof that a stopping point always exists

Cournot’s stopping point and this Up-Left cell are the same shape, but nobody had a general theory of when one exists until 1950, when a graduate student at Princeton named John Nash published a two-page note in the Proceedings of the National Academy of Sciences. Nash proved that in any game, with any number of players and moves, at least one such stopping point always exists - what he later shared the 1994 Nobel Prize in Economics for.

The idea now carries his name. A Nash equilibrium is a set of choices, one per player, where nobody can do better by changing only their own move. Check it by hand on Up-Left: switch to Down alone and you drop from 4 to 2 - worse. Switch to Right alone and Them drops from 4 to 2 - worse. Neither has a reason to move. That’s the whole definition, and a dominant-strategy cell like this one is automatically a Nash equilibrium too - dominance is just the easy case, where the same move wins against everything the other side could do.

Finding it without a dominant move

Most games don’t hand you a dominant move, but you can still find the standstill in about a minute on paper. Your best reply to one move of theirs is simply your highest-paying answer to it.

Start with your numbers, one column at a time. Under column Left your biggest number is 4, at Up - underline it. Under column Right your biggest is 3, also at Up - underline it. Now Them’s numbers, one row at a time: in row Up their biggest is 4, at Left; in row Down it’s 3, at Left - underline both. Up-Left is the only cell with both numbers underlined, so neither of you gains by moving alone - the same cell the dominant moves gave you.

Check for a dominant move first, underline if there isn’t one; the three boxes at the bottom are the only things that can happen:

flowchart TD
  A[Write down every combination and its payoffs] --> B{Does either player have a dominant move?}
  B -- yes --> C[Play it - that cell is the answer]
  B -- no --> D[Underline each player's best reply in every row and column]
  D --> E{Any cell with both numbers underlined?}
  E -- one --> F[One Nash equilibrium]
  E -- several --> G[More than one - nothing says which you land on]
  E -- none --> H[No standstill in plain moves - a later lesson covers this]

The sting: a standstill isn’t the same as a good outcome

Here’s the part that surprises people first. A Nash equilibrium only promises nobody wants to move alone - it says nothing about whether the outcome is good. Look at this table, You a row and Them a column, your payoff first and theirs second in every cell:

                 THEM
              Coop     Defect
       Coop  (3, 3)   (0, 5)
YOU
     Defect  (5, 0)   (1, 1)

Check Defect for You: it pays 5 against Coop’s 3, and 1 against Coop’s 0 - it wins either way, so it’s dominant. Them’s table is identical from their side, so Defect is dominant for them too. The Nash equilibrium is Defect-Defect, worth 1 to each of you. But Coop-Coop sits right there, worth 3 to each - better for both. Neither can reach it alone: from Coop-Coop, whoever switches to Defect jumps from 3 to 5. The stable cell and the good cell are different cells, and the next lesson, The Prisoner's Dilemma, is entirely about why that gap matters.

You now know

  • A Nash equilibrium is a set of choices where nobody can gain by switching their own choice alone, everyone else’s held fixed.
  • A dominant strategy beats every other option no matter what anyone else does; when every player has one, playing them together is a Nash equilibrium.
  • Without a dominant strategy, mark each player’s best answer to every move of the other’s; a choice pair where both are best answers is a Nash equilibrium.
  • A game can have several Nash equilibria, or none where each player simply commits to one move.
  • Being stable and being good are different things: a game can settle on an outcome that pays every player less than another outcome none of them can reach by switching alone.

Stop here if you want. What follows is the same idea in numbers, for when you want to see every equilibrium found by brute force instead of by hand.

Second read: every equilibrium, checked by machine

Underlining isn’t the only hand method. You can also cross out any move that’s always worse than another (a dominated move), then look again, and repeat - iterated elimination of dominated strategies: Down is dominated for You (2 < 4, 1 < 3), cross it out; with Down gone, Right is dominated for Them (2 < 4), cross it out too. One cell survives, Up-Left - the same answer as underlining. Not every game collapses to one cell this way; when it doesn’t, fall back to underlining.

Underlining is also a loop a computer can run in a few lines: for every cell, check whether either player could gain by switching row or column alone. “Check every cell” really is the whole algorithm. Here it is in node, with the coworker game first, plus two more:

// game[r][c] = [rowPayoff, colPayoff]
function solve(name, rows, cols, game) {
  console.log(`\n== ${name}`);
  cols.forEach((c, j) => {
    const best = Math.max(...rows.map((_, i) => game[i][j][0]));
    console.log(`  if THEM plays ${c} -> YOU best reply: ${rows.filter((_, i) => game[i][j][0] === best)}`);
  });
  rows.forEach((r, i) => {
    const best = Math.max(...cols.map((_, j) => game[i][j][1]));
    console.log(`  if YOU plays ${r} -> THEM best reply: ${cols.filter((_, j) => game[i][j][1] === best)}`);
  });
  const ne = [];
  rows.forEach((r, i) => cols.forEach((c, j) => {
    const rowOk = rows.every((_, k) => game[k][j][0] <= game[i][j][0]); // no better row
    const colOk = cols.every((_, k) => game[i][k][1] <= game[i][j][1]); // no better column
    if (rowOk && colOk) ne.push(`(${r}, ${c}) = (${game[i][j]})`);
  }));
  console.log(`  pure Nash equilibria: ${ne.length ? ne.join(", ") : "NONE (only mixed)"}`);
}

solve("Board game (2x2)", ["Up", "Down"], ["Left", "Right"],
  [[[4, 4], [3, 2]], [[2, 3], [1, 1]]]);
solve("A 3x3 with no dominant strategy", ["Top", "Mid", "Bot"], ["L", "C", "R"],
  [[[3, 1], [0, 0], [1, 4]],
   [[0, 2], [4, 4], [2, 0]],
   [[2, 3], [1, 2], [3, 3]]]);
solve("Matching pennies (2x2)", ["Heads", "Tails"], ["Heads", "Tails"],
  [[[1, -1], [-1, 1]], [[-1, 1], [1, -1]]]);

The output, with the best-response tables the underline method would have drawn by hand:

== Board game (2x2)
  if THEM plays Left -> YOU best reply: Up
  if THEM plays Right -> YOU best reply: Up
  if YOU plays Up -> THEM best reply: Left
  if YOU plays Down -> THEM best reply: Left
  pure Nash equilibria: (Up, Left) = (4,4)

== A 3x3 with no dominant strategy
  if THEM plays L -> YOU best reply: Top
  if THEM plays C -> YOU best reply: Mid
  if THEM plays R -> YOU best reply: Bot
  if YOU plays Top -> THEM best reply: R
  if YOU plays Mid -> THEM best reply: C
  if YOU plays Bot -> THEM best reply: L,R
  pure Nash equilibria: (Mid, C) = (4,4), (Bot, R) = (3,3)

== Matching pennies (2x2)
  if THEM plays Heads -> YOU best reply: Heads
  if THEM plays Tails -> YOU best reply: Tails
  if YOU plays Heads -> THEM best reply: Tails
  if YOU plays Tails -> THEM best reply: Heads
  pure Nash equilibria: NONE (only mixed)

Three things to read off that output, one per game.

The coworker game. “YOU best reply: Up” appears in both columns - a dominant strategy repeats the same answer regardless of column. Same for Them and Left, so the script confirms Up-Left is the only surviving cell.

The 3x3. No row wins every column and no column wins every row, so nothing is dominated. Yet the brute-force pass still finds two cells where nobody wants to move: (Mid, C) = (4,4) and (Bot, R) = (3,3) - most interesting games have several equilibria, not one, and nothing says which one players will find.

Matching pennies. Every cell has an arrow out of it: one player always wants to flip, so there’s no standstill in plain moves. Nash’s theorem still holds, but the equilibrium it guarantees is a mixed strategy - each side randomising instead of committing - which is why the script prints “NONE” instead of a cell.

Drawn, not described: each cell is a node, an arrow means one player gains by switching to it alone, and a Nash equilibrium is a node with no arrow leaving it:

graph LR
  subgraph BG["Board game: one sink"]
    DL["Down,Left (2,3)"] -->|You switch| UL["Up,Left (4,4)"]
    UR["Up,Right (3,2)"] -->|They switch| UL
    DR["Down,Right (1,1)"] -->|You switch| UR
    DR -->|They switch| DL
  end
  subgraph MP["Matching pennies: a cycle, no sink"]
    HH["Heads,Heads"] -->|They switch| HT["Heads,Tails"]
    HT -->|You switch| TT["Tails,Tails"]
    TT -->|They switch| TH["Tails,Heads"]
    TH -->|You switch| HH
  end

On the left every path ends at Up-Left; on the right the cells chase each other in a loop with no resting place.

This is also the honest limit of “finite” in Nash’s theorem. Each cell needs one check per player per alternative move. Two players with 3 moves each is 9 cells, each needing 2 × 2 = 4 checks: 36 total. Ten players with 10 moves each is 10¹⁰ cells, each needing 10 × 9 = 90 checks: 9 × 10¹¹ total, or 900 seconds (a quarter hour) at a billion checks a second. Exact, but exponential in players: a large general game’s Nash equilibrium is known to be computationally hard (PPAD-complete, Daskalakis, Goldberg and Papadimitriou, 2006). Past a printable table, underlining is how you think, not how you compute.

(An outcome is Pareto-optimal when you can’t make one player better off without making another worse off. Defect-Defect is not - Coop-Coop helps everyone at once - which is the sting written more formally.)

Where this shows up outside a game

  • When a shared resource has no rules, trying harder than everyone else is often dominant for each user alone, so the stable state is congestion. Fixing it means changing the payoffs (quotas, backoff, admission control), not asking nicely.
  • A bad-but-stable setup is a Nash equilibrium too: nobody can switch alone without being worse off, so it persists even though everyone would prefer something else.
  • With a dominant strategy, take it and stop guessing - most “but what will they do?” worrying is really about an option that was dominated all along.

Play it

Post this in a group chat: “Pick a whole number from 0 to 100. Whoever is closest to two thirds of the average wins.” Crossing out dominated guesses, round after round, ends at 0: nobody should go above 66.7, so nobody should go above 44.4, and so on. Real groups stop after a step or two. In Rosemarie Nagel’s 1995 experiment, published in the American Economic Review, first guesses averaged around 36. Solve These Cold explains the gap.

Problem set

Solve each before opening its answer. Rows are your moves, columns theirs, your payoff first.

  1. Rows Top, Middle, Bottom; columns Left, Centre, Right. Your payoffs: Top 2, 4, 1; Middle 3, 1, 0; Bottom 1, 2, 5. Theirs: Top 1, 3, 2; Middle 2, 0, 1; Bottom 4, 1, 3. Find every pure Nash equilibrium.
  2. A 2x2: your payoffs Up 0, 2; Down 3, 1. Theirs: Up 3, 0; Down 1, 2. Is there a pure Nash equilibrium?
  3. True or false: every dominant-strategy outcome is a Nash equilibrium, and every Nash equilibrium is a dominant-strategy outcome.
Answers
  1. Two: (Top, Centre) paying (4, 3), and (Middle, Left) paying (3, 2). Nothing is dominated, so underline: against Left your best is Middle, against Centre Top, against Right Bottom; their best against Top is Centre, against Middle Left, against Bottom Left. Two cells are underlined twice. (Checked with the brute-force solver, 2026-10-17.)
  2. No. Every cell has someone who wants to switch: the cells chase each other in a loop, like matching pennies. The equilibrium is a mix (Mixed Strategies & Zero-Sum).
  3. The first half is true; the second is false. The coordination games in this track have Nash equilibria with no dominant move at all.

Try it

Take the game you sketched for What Is a Game? (or the Coop/Defect table above) and solve it two ways: underline best replies, then eliminate dominated moves. Do they agree? Now check the equilibrium against the best outcome - is your stable cell the one that pays the most in total? If not, the interesting question is what would change the payoffs so the good outcome becomes the stable one - the whole game of mechanism design, for a later board.

Then check yourself against the machine. Save the script from the section above as nash.mjs and run it:

node nash.mjs

Three experiments, each under two minutes:

  1. Make (Down, Right) worth [4, 1] and re-run. Up is no longer dominant, but is (Up, Left) still the equilibrium? It is - dominance is enough for an equilibrium, not necessary.
  2. Raise (Bot, R) to [5, 5] in the 3x3. Both equilibria survive, and the worse one is now (Mid, C) - only which cell you’d rather coordinate on has changed.
  3. Add a third player? You can’t with this script - a three-player game needs a cube of payoffs, not a grid, which is why brute force checks small examples but isn’t a solver.

Go deeper

  • Nash (1950), Equilibrium Points in n-Person Games - the two-page proof.
  • Dixit & Nalebuff, The Art of Strategy - ch. on Nash equilibrium and dominance.
  • Osborne & Rubinstein, A Course in Game Theory - rigorous treatment of solution concepts.
  • A Beautiful Mind (film/book) - Nash the person; the film’s bar scene mis-states the theorem, a fun error to spot.

Retrieval practice

9 questions. Answer each one before you open it.

Best reply, dominant and dominated - what does each mean?

A best reply is your best move against one specific choice by the other player. A dominant strategy is your best reply no matter what they do. A dominated strategy is always worse than some alternative, so it gets crossed out.

State the definition of a Nash equilibrium two ways.

(1) A set of choices where no player can do better by changing only their own move. (2) Every player is already playing their best reply to everyone else, so nobody regrets their choice.

How does the underline method find a Nash equilibrium?

For each column, underline the row player’s biggest number in it; for each row, underline the column player’s biggest number in it. A cell with both numbers underlined is a Nash equilibrium.

What does Nash’s theorem guarantee, and why does “mixed strategy” show up in the fine print?

Every game with finitely many players and moves has at least one Nash equilibrium - but it may exist only as a mixed strategy, randomising instead of committing. Matching pennies has no standstill in plain moves, yet the theorem still guarantees a mixed one.

Why is a Nash equilibrium not the same as the best outcome?

It’s only stable: nobody wants to move alone. It can still pay everyone less than a cell they can’t reach alone - Defect-Defect is the equilibrium at (1,1) even though Coop-Coop pays (3,3) to both, because nobody can switch to Coop alone without losing.

Translate “Defect is dominant” into a shared-resource failure mode.

With no rules, trying harder than everyone else is often the dominant move for each user alone, so the stable state is congestion - nobody gains by being the one who backs off. The fix is changing the payoffs (quotas, backoff, admission control), not persuasion.

In a best-response table, what does a dominant strategy look like, and what does the script check at each cell?

The same best reply repeated in every column or every row - “if THEM plays Left -> Up, if THEM plays Right -> Up”. The script checks that no other row or column beats the current one with the other held fixed; passing both makes a cell a Nash equilibrium.

The 3x3 game has no dominant strategy for anyone. Does elimination help, and what does the brute-force pass find?

Elimination deletes nothing: each row is best somewhere (Top in L, Mid in C, Bot in R), so none is always worse. The brute-force pass still finds two equilibria, (Mid, C) = (4,4) and (Bot, R) = (3,3), and nothing says which one players will land on.

In the deviation graph, what is a Nash equilibrium, and what does matching pennies look like?

A node with no arrow leaving it - an arrow means one player gains by switching alone. Matching pennies has all four cells in one cycle, so no cell is a resting place; its equilibrium is the mixed one, each side randomising fifty-fifty.

Lab

Two sellers share a market. Does competition between them push the price all the way down to cost?

Switch between Sellers choose amounts and Sellers post prices, then drag Sellers in the market up to 20.

Open The price war →

Review Game Theory →

Saved in this browser, and to your account when you sign in.