Computer Science Through Urn Games: An Unified Framework for a Hierarchy of Solvable and Unsolvable Problems

Abstract. In his last published paper, Solvable and Unsolvable Problems, printed in 1954 in the popular journal Science News, Alan Turing presented several elegant puzzles aiming at explaining and popularizing problems for which there are algorithms for solutions – the solvable – as well as some for which no such algorithmic solution exists the unsolvable. This paper could be seen as a continuation of Turings aim to explain and popularize through puzzles, this time using a set of computational problems of various computational difficulties. Similar to Turings paper, where all his puzzles are unified as substitution puzzles, our set of puzzles offers instances of a unified approach based on urn games. Our (m, n1, n2) games have urns of two types: set urns and linear urns; the urns contain balls of m colors; in a move, a number n1 of balls are extracted and a number n2 of balls are returned to the urn; the solitary player performs moves, one after another, based on the rules of the game until no rule can be applied. Our urn games include Turings substitutions puzzles, but defined with different goals. The class of computational problems obtained by varying the urn game parameters (m, n1, n2) turns out to form a hierarchy of complete problems, one for each of the complexity classes NL, P, NP, PSPACE, EXPSPACE, and the unsolvable. Dijkstras game is a (2,2,1) urn game. The urn games are generalizations of a silly game E.W. Dijkstra presented in his paper Why correctness must be a mathematical concern [Inaugural Lecture for the Chaire Internationale dInformatique at the Universite de Liege, Belgium, 1979 (EWD720)]. The generalizations are inspired by discussions I had with Professor Dijkstra in the wake of my somewhat critical comments of his game. [See my articles Criticizing Professor Dijkstra Considered Harmless and the followup, When Professor Dijkstra Slapped Me in the Quest for Beautiful Code http://www.cs.brown.edu/ sorin/non-tech-writing.htm.] Dijkstra’s silly game is shown to have a certain incompleteness property. This incompleteness relates to the apparent inseperability of two problems: (a) demonstrate how to predict the final outcome, and (b) demonstrate that the final outcome is completely predictable. It turns out that predictability is equivalent to associativity and to the existence of logical invariants for correctness proofs.