The Berlekamp switching game is a mathematical game proposed by American mathematician Elwyn Berlekamp.[1] It has also been called the Gale–Berlekamp switching game, after David Gale, who discovered the same game independently,[2] or the unbalancing lights game.[3] It involves a system of lightbulbs controlled by two banks of switches, with one game player trying to turn many lightbulbs on and the other trying to keep as many as possible off. It can be used to demonstrate the concept of covering radius in coding theory.
The equipment for playing the game consists of a room containing rectangular array of lightbulbs, of dimensions for some numbers and . A bank of switches on one side of the room controls each lightbulb individually. Flipping one of these switches changes its lightbulb from off to on or from on to off, depending on its previous state. On the other side of the room is another bank of switches, one for each row or column of lightbulbs. Whenever any of these switches is flipped, every lightbulb in the row or column that it controls changes from off to on or from on to off, depending on its previous state. When flipping more than one switch, the order in which the switches are flipped does not make a difference to the outcome: the same lightbulbs will be lit at the end of the sequence of flips no matter what order they are flipped.
The game is played in two rounds. In the first round, the first player uses the switches that control individual lights, to set the lights on or off arbitrarily. In the second round, the second player uses the switches that control rows or columns of lights, changing the pattern of lights set by the first player into another pattern (or, possibly, leaving it unchanged). The goal of the first player is to have as many lights remaining lit at the end of the game as possible, and the goal of the second player is to have as few lights remaining lit as possible. Therefore, the first player should choose a pattern of lights for which the second player cannot turn off many lights.
Berlekamp worked at Bell Labs in Murray Hill, New Jersey from 1966 to 1971.[4] While there, he constructed a physical instance of this game for the case in the Mathematics Department commons room.[1][2] David Gale also invented the game independently, some time prior to 1971.[5]
Early research on related problems included publications by Andrew M. Gleason (1960), whose computer experiments can be interpreted as asking, for the game, how well the second player can do against a first player who plays randomly,[6] and by J. W. Moon and Leo Moser (1966), who address Gleason's question theoretically, showing that for almost all choices of the first player, in the limit of large game board sizes, the optimal game value is close to .[7]
Mathematically, one can describe the lights turned on by the first player's move as a set , and the smallest number of lights that can be achieved by the best play for the second player as a number . The best play for the first player is to choose a set that maximizes . Therefore, one can describe the largest number of lights that can be achieved by the best play for the first player as a number . Beyond the question of how to play well in an individual game, a broader question that has been the object of mathematical research is to characterize the value of in general, as a function of and , to determine its behavior as a function, or to calculate its value for as many combinations of and as possible.
The case of a square array has been solved for . Additionally, lower bounds for have been found for .[8][9][10][11] These numbers are:
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | 1 | 2 | 4 | 7 | 11 | 16 | 22 | 27 | 35 | 43 | 54 | ≥ 60 | ≥ 71 | ≥ 83 | ≥ 96 | ≥ 107 | ≥ 122 | ≥ 139 | ≥ 148 |
Asymptotically, these numbers grow as .[2][5][12]
Because there are exponentially many choices for which switches to flip, an exhaustive search for the optimal choice is not possible for large , setting up the question of how well computationally-limited players can play this game.
The first player can cause the expected game value to be by playing randomly. Similarly, the second player can obtain a value whose expected distance from is by playing randomly; this value might either be larger or smaller than , but if it is larger the second player can flip all row switches to get a value that is smaller by the same amount.[2][5][12] This random strategy for the second player can be made non-random using the method of conditional probabilities, giving a polynomial time algorithm that obtains the same solution value guarantees. A different derandomization gives a parallel algorithm in the complexity class NC.[13]
Finding the optimal choice for the second player in the game, once the first player has chosen which bulbs to light, is an NP-hard problem.[14] However, there is a polynomial-time approximation scheme for the game that can find a choice for the second player that leaves only times the minimum possible number of lit bulbs, for any , in time .[15]
The Berlekamp switching game can be used in coding theory as a demonstration of the covering radius of a certain binary linear code. A binary linear code of length and dimension is defined as a -dimensional linear subspace of the -dimensional vector space over the finite field with two elements, . The elements of the subspace are called codewords, and the covering radius is the smallest number such that every point of is within Hamming distance of a codeword.
Let and . For these parameter values, the vector space describes all possible patterns of lit bulbs on the array of lightbulbs, with a vector addition operation that combines two patterns by lighting the bulbs that appear in exactly one of the two patterns (the symmetric difference operation on the sets of lit bulbs). One can define a linear subspace consisting of all patterns that the second player can turn completely off, or equivalently of all patterns that the second player could create starting with a board that is completely off. Although the second player has choices for how to set the second bank of switches, this subspace has elements, giving it dimension , because flipping all of the second player's switches has no effect on the pattern of lit bulbs.
Then is the covering radius of this code. The set of lit bulbs chosen by the first player, with best play, gives a point of that is as far as possible from the linear subspace. The set of bulbs whose state is changed by the second player, with best play, gives the closest point in the linear subspace. The set of bulbs that remain lit after these choices are the ones whose number defines the Hamming distance between these two points.[1]