Berlekamp switching game
The Berlekamp switching game is a mathematical game proposed by American mathematician Elwyn Berlekamp. It has also been called the Gale–Berlekamp switching game, after David Gale, who discovered the same game independently, or the unbalancing lights game. 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.

Rules 
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.

History 
Berlekamp worked at Bell Labs in Murray Hill, New Jersey from 1966 to 1971. While there, he constructed a physical instance of this game for the case  in the Mathematics Department commons room. David Gale also invented the game independently, some time prior to 1971.

Early research on related problems included publications by , 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, and by , 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 .

Analysis 
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 . These numbers are:
 

Asymptotically, these numbers grow as .

Computational complexity
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. 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.

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. 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 .

Connection to coding theory
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.

See also
 Lights Out (game), a different puzzle involving turning off lightbulbs using switches that control multiple bulbs

References

Coding theory
Mathematical games