Title
Who witnesses The Witness? Finding witnesses in The Witness is hard and sometimes impossible
Abstract
We analyze the computational complexity of the many types of pencil-and-paper-style puzzles featured in the 2016 puzzle video game The Witness. In all puzzles, the goal is to draw a simple path in a rectangular grid graph from a start vertex to a destination vertex. The different puzzle types place different constraints on the path: preventing some edges from being visited (broken edges); forcing some edges or vertices to be visited (hexagons); forcing some cells to have certain numbers of incident path edges (triangles); or forcing the regions formed by the path to be partially monochromatic (squares), have exactly two special cells (stars), or be singly covered by given shapes (polyominoes) and/or negatively counting shapes (antipolyominoes). We show that any one of these clue types (except the first) is enough to make path finding NP-complete ("witnesses exist but are hard to find"), even for rectangular boards. Furthermore, we show that a final clue type (antibody), which necessarily "cancels" the effect of another clue in the same region, makes path finding E2-complete ("witnesses do not exist"), even with a single antibody (combined with many anti/polyominoes), and the problem gets no harder with many antibodies. On the positive side, we give a polynomial-time algorithm for monomino clues, by reducing to hexagon clues on the boundary of the puzzle, even in the presence of broken edges, and solving "subset Hamiltonian path" for terminals on the boundary of an embedded planar graph in polynomial time. (C) 2020 Published by Elsevier B.V.
Year
DOI
Venue
2020
10.1016/j.tcs.2020.05.031
THEORETICAL COMPUTER SCIENCE
Keywords
DocType
Volume
Hardness,Video games,Computational complexity,Path puzzles,Algorithms,Hamiltonian path
Journal
839
ISSN
Citations 
PageRank 
0304-3975
0
0.34
References 
Authors
0
10
Name
Order
Citations
PageRank
Zachary Abel15710.42
Jeffrey Bosboom21177.70
Michael Coulombe300.34
Erik D. Demaine44624388.59
Hamilton, Linus531.43
Adam Hesterberg647.07
Justin Kopinsky7395.23
Jayson Lynch8711.97
Mikhail Rudoy910.73
Clemens Thielen107515.11