  Rummikub is a tile-based game in which each player starts with a hand of $14$
tiles. A tile has a value and a suit. The players form sets consisting of tiles
with the same suit and consecutive values (runs) or tiles with the same value
and different suits (groups). The corresponding optimization problem is, given
a hand of tiles, to form valid sets such that the score (sum of tile values) is
maximized. We first present an algorithm that solves this problem in polynomial
time. Next, we analyze the impact on the computational complexity when we
generalize over various input parameters. Finally, we attempt to better
understand some aspects involved in human play by means of an experiment that
considers counting problems related to the number of possible immediately
winning hands.
