This is a follow up to When Suboptimal Minimax is Better. After running 400 simulations, I can conclusively say that opponent modeling is pretty cool.

The TLDR on opponent modeling is that if we have a pretty good idea of what the opponent might do, we can beat them faster by playing moves which aren’t objectively “optimal” as far as minimax is concerned. Here, Maia 1900 is a model of a relatively high-level chess player. Antimaia 1900 is specifically designed to counter Maia 1900.

White Black Games White win % Average half moves per game
Antimaia 1900 Maia 1900 100 100% 37
Maia 1900 Antimaia 1900 100 0% 43
Maia 1900 Stockfish @10 100 0% 67
Stockfish @10 Maia 1900 100 100% 70
  • Maia 1900 uses Maia Chess weights trained on games from players rated near 1900.
  • Antimaia 1900 uses Maia 1900 weights and Stockfish @10.
  • Stockfish @10 is Stockfish 14.1 evaluated at depth 10.

As you can see, Antimaia finishes its games much more quickly (12-16 moves faster!). This demonstrates that Antimaia is exploiting weaknesses in Maia’s policy as measured by Stockfish, and playing high risk/high reward moves which usually pay off.

Selected Games

I had to keep reminding myself that even though these games look ridiculous, Maia plays poorly because Antimaia is finding moves where Maia is most likely to mess up.

Antimaia vs Maia

  • Game 15: Smothered mate comes out of nowhere. gif

  • Game 24: Antimaia lays a poison pawn trap then waits patiently for 2 moves before Maia falls for it, blundering a queen. gif

  • Game 32: The shortest game. Another nice checkmate delivered by the knight. gif

  • Game 59: Maia blunders a piece and then falls for Antimaia’s poison rook to get checkmated. gif

  • Game 75: Promoting to a knight not because it’s the best move, but because it doesn’t matter. gif

  • Game 88: Antimaia makes the crazy move Bh7 but Maia blunders into checkmate by taking with the knight. gif

Maia vs. Antimaia

  • Game 2: Queen takes e3 is objectively a horrible move but Antimaia gambles correctly that Maia won’t know how to respond. gif

  • Game 7: Antimaia baits Maia into blundering a queen and mate in 3. gif

  • Game 51: Antimaia tricks Maia with a poison pawn. gif

  • Game 59: Maia manages to lose in 5 moves. gif

  • Game 69: Antimaia swindles a queen. gif

The rest of the games

I added the rest of the games to github: