Chess is hard

even for a single player

N. R. Aravind  Neeldhara Misra ⸱  Harshil Mittal

Presented by Miguel Ambrona on their behalf

 2022

Roadmap

Roadmap

Capture a piece with every move
until just one remains.

No piece may capture
more than 2 times per puzzle.

If there is a King on the board,
it must be the final piece.

Solo Chess:
The Rules

Some instances of Solo Chess have unique solutions.

...while others may have more than one.

...while others may have more than one.

Generalized

SOLO CHESS

Many (\(n\)) pieces!

Each piece has a specific # of captures remaining.

1D or 2D or... dD boards.

Focus: one piece type at a time.

Generalized

SOLO CHESS

Each piece has a specific # of captures remaining.

No captures left.

One capture left.

Two captures left.

Generalized

SOLO CHESS

Given the locations and types of the \(n\) pieces

and the number of captures that each piece can make,

The Computational Question

determine if there is a legal sequence of captures

that clears the board.

\(n\)                  playing on        boards with                          captures per piece.

pieces

rooks

queens

pawns

bishops

rooks

1D

2D

\(k \in \{{\color{LightGray}0,1},2\}\)

\(k \in \{0,1,2\}\)

\(k \in \{0,1,2\}\)

knights

\(k \in \{{\color{LightGray}0,1},2\}\)

Generalized

SOLO CHESS

Actually this setting is tractable even for
\(k \in \{0,1,\ldots,d\}\) for arbitrary \(d\).

The hardness is due to a reduction from
Red-Blue Dominating Set.

Bishops and rooks have similar moves,
so the hardness follows by a 45-deg rotation of configurations.

The queens-only setting is hard even for the
special case when \(k = 2\).

Pawns restricted to captures-only feel like a bishop variant,

but turn out to be tractable if \(k = 2\) for each piece.

The case for knights is open!
We show that a natural generalization is hard.

Roadmap

Rooks only

on 1D Boards

Assume — WLOG* — that we want to clear to the leftmost piece.

*Can guess the final surviving piece.

Rooks only

on 1D Boards

(Cannot move)

(One capture)

(Two captures)

Rooks only

on 1D Boards

(No fuel)

(One unit of fuel)

(Two units of fuel)

Rooks only

on 1D Boards

The total amount of fuel should be at least (#rooks - 1).

Characterizing solvable instances: intuition

Rooks only

on 1D Boards

The total amount of fuel should be at least (#rooks - 1).

Characterizing solvable instances: intuition

Solvable 👍

Rooks only

on 1D Boards

The total amount of fuel should be at least (#rooks - 1).

Characterizing solvable instances: intuition

Solvable 👍

Rooks only

on 1D Boards

The total amount of fuel should be at least (#rooks - 1).

Characterizing solvable instances: intuition

Not solvable 😕

Rooks only

on 1D Boards

The total amount of fuel should be at least (#rooks - 1).

Characterizing solvable instances: intuition

Not solvable 😕

Rooks only

on 1D Boards

The total amount of fuel should be at least (#rooks - 1).

Characterizing solvable instances: intuition

Not solvable 😕

Rooks only

on 1D Boards

The total amount of fuel should be at least (#rooks - 1).

Characterizing solvable instances: intuition

Solvable 👍

Rooks only

on 1D Boards

The total amount of fuel should be at least (#rooks - 1).

Characterizing solvable instances: intuition

Rooks only

on 1D Boards

The total amount of fuel should be at least (#rooks - 1).

Characterizing solvable instances: intuition

Rooks only

on 1D Boards

The total amount of fuel should be at least (#rooks - 1).

Characterizing solvable instances: intuition

Rooks only

on 1D Boards

The total amount of fuel should be at least (#rooks - 1).

Characterizing solvable instances: intuition

Rooks only

on 1D Boards

The total amount of fuel should be at least (#rooks - 1).

Characterizing solvable instances: intuition

Rooks only

on 1D Boards

The total amount of fuel should be at least (#rooks - 1).

Characterizing solvable instances: intuition

Rooks only

on 1D Boards

The total amount of fuel should be at least (#rooks - 1).

Characterizing solvable instances: intuition

Rooks only

on 1D Boards

The total amount of fuel should be at least (#rooks - 1).

Characterizing solvable instances: intuition

Every capture burns at least one unit of fuel.

Thus if we want to make \(\ell\) captures, we need \(\ell\) units of fuel.

Rooks only

on 1D Boards

The total amount of fuel should be at least (#rooks - 1).

Characterizing solvable instances: intuition

Every capture burns at least one unit of fuel.

If we do have \(\ell\) units of fuel, we can manage if
every move reduces the total amount of fuel by one.

Rooks only

on 1D Boards

The total amount of fuel should be at least (#rooks - 1).

Characterizing solvable instances: intuition

Every capture burns at least one unit of fuel.

We ensure that a piece with more fuel captures a piece with less fuel, which is always possible by symmetry.

Rooks only

on 1D Boards

The total amount of fuel should be at least (#rooks - 1).

Characterizing solvable instances: intuition

This idea generalizes naturally to when

each piece has up to \(d\) captures left.

Roadmap

Generalized Solo Chess played with

\(n\) rooks that have 0,1, or 2 moves left

on a 2D board is NP-complete.

Rooks only

on 2D Boards

Red-Blue Dominating Set

Rooks only

on 2D Boards

Are there at most \(k\) red vertices that dominate all the blue vertices?

Rooks only

on 2D Boards

Are there at most \(k\) red vertices that dominate all the blue vertices?

Rooks only

on 2D Boards

Rooks only

on 2D Boards

\(n\) blue rooks on a top row

corresponding to \(n\) red vertices.

Rooks only

on 2D Boards

also introduce \(m\) rows

corresponding to \(m\) blue vertices.

Rooks only

on 2D Boards

place a blue rook on the \(j^{th}\) column of the \(i^{th}\) row 

if the \(i^{th}\) blue vertex is adjacent to the \(j^{th}\) red vertex.

Rooks only

on 2D Boards

place a green rook at the end* of

every row corresponding to blue vertices

Rooks only

on 2D Boards

The idea: if the \(i^{th}\) blue vertex is dominated by the \(\ell^{th}\) red vertex,

then all blue rooks on the \(i^{th}\) row capture the rook on the \(\ell^{th}\) column.

Rooks only

on 2D Boards

The idea: if the \(i^{th}\) blue vertex is dominated by the \(\ell^{th}\) red vertex,

then all blue rooks on the \(i^{th}\) row capture the rook on the \(\ell^{th}\) column.

Rooks only

on 2D Boards

The the extreme green rook on the \(j^{th}\) row

captures the lone red rook on that row.

Rooks only

on 2D Boards

The the extreme green rook on the \(j^{th}\) row

captures the lone red rook on that row.

Rooks only

on 2D Boards

Now these rooks clear to the top,

creating red rooks corresponding to dominating set vertices.

Rooks only

on 2D Boards

Now these rooks clear to the top,

creating red rooks corresponding to dominating set vertices.

Rooks only

on 2D Boards

To fully clear the board, we add \(k\) green rooks

to the extreme right of the top row.

Rooks only

on 2D Boards

To fully clear the board, we add \(k\) green rooks

to the extreme right of the top row.

Rooks only

on 2D Boards

The number of green rooks on the top row

controls the budget for the dominating set.

Roadmap

Solo Chess

Open Problems

Complexity of Generalized Solo Chess

for rooks/bishops when each piece has two captures.

Solo Chess

Open Problems

Complexity of Generalized Solo Chess

for pawns when each piece has a designated # of captures.

Solo Chess

Open Problems

Complexity of Generalized Solo Chess

played by Knights only.

Solo Chess

New Directions

Consider optimization versions

(e.g, clear at least k pieces).

Solo Chess

New Directions

Constraints on distance moved

instead of #of captures

Solo Chess

Special classes of input

(e.g, constant #pieces per row/column; \(c \times d\) boards, etc.)

New Directions

Solo Chess

Fairy pieces?

Multiple types of pieces at a time?

Counting variants/another solution problems?

Generating puzzles with \(k\) solutions?

Practical solvers for solo chess?

New Directions

Thank you!

Solo Chess

By Neeldhara Misra

Solo Chess

Presentation made for Fun with Algorithms (2022), based on the paper "Chess is Hard even for a Single Player".

  • 275