Dominated Actions in Imperfect-Information Games

This paper introduces a polynomial-time algorithm for identifying and iteratively removing dominated actions in two-player perfect-recall imperfect-information games, enabling efficient game tree reduction as a preprocessing step for Nash equilibrium computation without the exponential blowup associated with normal-form conversion.

Sam Ganzfried

Published 2026-03-17
📖 5 min read🧠 Deep dive

Imagine you are playing a complex board game against a friend. You have a deck of cards, and every time you make a move, the game tree branches out into thousands of possible futures. To find the perfect strategy (the "Nash Equilibrium"), you need to analyze every single branch. But the game is so huge that your computer would need to run for a million years just to figure out the best move.

This paper is about a clever shortcut: finding and throwing away the "bad moves" before you even start the heavy lifting.

Here is the breakdown of the paper using simple analogies.

1. The Problem: The "Normal Form" Explosion

In game theory, there are two ways to look at a game:

  • Normal Form: A giant spreadsheet listing every possible combination of moves.
  • Extensive Form: The actual game tree (like a choose-your-own-adventure book).

In simple games (like Rock-Paper-Scissors), we can easily spot "dominated strategies." A dominated strategy is a move that is always worse than another move, no matter what your opponent does.

  • Analogy: If you are playing a card game and you have a "3 of Hearts" and a "King of Hearts," and the rules say Kings always beat 3s, you should never play the 3. It's a "dominated" move.

In simple games, we can delete these bad moves quickly. But in complex games with hidden information (like Poker), if you try to convert the game into that giant spreadsheet to find the bad moves, the spreadsheet becomes exponentially huge. It's like trying to read a library of books by printing every single page of every book on a single sheet of paper. It's impossible.

2. The Trap: Why "Obvious" Bad Moves Aren't Enough

The author first tries to define a "bad move" in Poker-like games.

  • The Naive Idea: "If Action A leads to a leaf node (end of game) with a lower score than Action B in every single scenario, then A is bad."
  • The Problem: This is too strict. In Poker, you might have a move that looks bad in one specific scenario but is actually the best move overall because it forces your opponent to make a mistake later.
  • The Analogy: Imagine you are a general. One path leads to a swamp (bad), but the other path leads to a mountain (good). However, the enemy only knows about the swamp. If you take the mountain path, you might win. A simple "look at the map" check might say "Don't go to the mountain, it's far," but it misses the strategic value.

The paper shows that previous definitions were too rigid. They would miss moves that are actually terrible, just because they looked okay in one tiny, unlikely scenario.

3. The Solution: The "Smart Filter" (Polynomial Time)

Sam Ganzfried (the author) proposes a new, smarter definition of a "dominated action."

  • The Definition: An action is dominated if there is any other strategy (even a complex mix of moves) that beats it, assuming the game actually reaches this point.
  • The Key Insight: He realized that in games where players remember what happened (Perfect Recall) and actions are visible to everyone (Publicly Observable), you can check for these bad moves without exploding the game size.

He uses a mathematical tool called Linear Programming (think of it as a super-smart calculator that solves optimization puzzles).

  • The Metaphor: Instead of trying to read the whole library, he built a machine that scans the books and instantly highlights the pages that say "Don't do this."
  • The Result: He created an algorithm that runs in polynomial time. In plain English: It's fast. It scales well. You can run it on a laptop in seconds, even for complex games.

4. The Experiment: Poker "All-In or Fold"

To prove this works, the author tested it on a simplified version of Texas Hold'em Poker called "All-In or Fold."

  • The Setup: Two players. They can only do two things: Shove (bet all their chips) or Fold (give up).
  • The Scale: There are 169 different starting hands (like Ace-King, Pair of 7s, etc.).
  • The Process:
    1. The algorithm scans the game.
    2. It finds that for certain hands, "Folding" is always a terrible idea compared to "Shoving," or vice versa.
    3. It deletes those bad options.
    4. It repeats the process (Iterative Removal) because deleting one bad move might make another move look bad now.

The Outcome:

  • In a game with 5 "Big Blinds" (a specific stack size), the algorithm reduced the decision points by over 50%.
  • Player 1 went from having to decide on 169 hands down to just 25 hands.
  • Player 2 went from 169 hands down to 16 hands.

It's like taking a maze with 10,000 dead ends and instantly painting over 5,000 of them, leaving you with a much shorter path to the exit.

5. Why This Matters

Why do we care about deleting bad moves?

  1. Speed: If you have a smaller game, you can solve it much faster.
  2. Complexity: Some games are so big that they are impossible to solve. But if you can cut out the "stupid" moves first, the remaining game might be small enough to solve.
  3. Real World: The paper mentions that this technique helped solve a three-player poker game in 3 seconds that would have taken 24 hours without this cleanup.

Summary

Think of this paper as a game janitor.
Before you try to solve the most difficult puzzle in the world, this algorithm walks in with a broom and sweeps away all the obvious, terrible moves. It doesn't solve the game for you, but it makes the game small enough that a computer (or a human) can actually solve it.

It turns an impossible task into a manageable one by asking: "Is there any way this move could possibly be the best choice? If not, throw it in the trash."

Drowning in papers in your field?

Get daily digests of the most novel papers matching your research keywords — with technical summaries, in your language.

Try Digest →