El juego de conmutación de Berlekamp es un juego matemático propuesto por el matemático estadounidense Elwyn Berlekamp . [1] También se lo ha llamado juego de conmutación de Gale-Berlekamp , en honor a David Gale , quien descubrió el mismo juego de forma independiente, [2] o juego de luces desequilibradas . [3] Implica un sistema de bombillas controladas por dos bancos de interruptores, en el que un jugador intenta encender muchas bombillas y el otro intenta mantener apagadas la mayor cantidad posible. Puede utilizarse para demostrar el concepto de radio de cobertura en la teoría de la codificación .
El equipo para jugar el juego consiste en una habitación que contiene una serie rectangular de bombillas, de dimensiones para algunos números y . Un banco de interruptores en un lado de la habitación controla cada bombilla individualmente. Al accionar uno de estos interruptores, la bombilla cambia de apagada a encendida o de encendida a apagada, dependiendo de su estado anterior. En el otro lado de la habitación hay otro banco de interruptores, uno para cada fila o columna de bombillas. Siempre que se acciona cualquiera de estos interruptores, cada bombilla en la fila o columna que controla cambia de apagada a encendida o de encendida a apagada, dependiendo de su estado anterior. Al accionar más de un interruptor, el orden en que se accionan los interruptores no hace ninguna diferencia en el resultado: las mismas bombillas se encenderán al final de la secuencia de accionados sin importar en qué orden se accionan.
El juego se desarrolla en dos rondas. En la primera ronda, el primer jugador utiliza los interruptores que controlan las luces individuales para encenderlas o apagarlas arbitrariamente. En la segunda ronda, el segundo jugador utiliza los interruptores que controlan las filas o columnas de luces, cambiando el patrón de luces establecido por el primer jugador por otro patrón (o, posiblemente, dejándolo sin cambios). El objetivo del primer jugador es tener tantas luces encendidas como sea posible al final del juego, y el objetivo del segundo jugador es tener la menor cantidad posible de luces encendidas. Por lo tanto, el primer jugador debe elegir un patrón de luces para el cual el segundo jugador no pueda apagar muchas luces.
Berlekamp trabajó en Bell Labs en Murray Hill, Nueva Jersey, de 1966 a 1971. [4] Mientras estuvo allí, construyó una instancia física de este juego para el caso en la sala común del Departamento de Matemáticas. [1] [2] David Gale también inventó el juego de forma independiente, algún tiempo antes de 1971. [5]
Las primeras investigaciones sobre problemas relacionados incluyeron publicaciones de Andrew M. Gleason (1960), cuyos experimentos de computadora pueden interpretarse como una pregunta, para el juego, qué tan bien puede jugar el segundo jugador contra un primer jugador que juega aleatoriamente, [6] y de JW Moon y Leo Moser (1966), quienes abordan la pregunta de Gleason teóricamente, mostrando que para casi todas las elecciones del primer jugador, en el límite de tamaños de tablero de juego grandes, el valor óptimo del juego está cerca de . [7]
Matemáticamente, se pueden describir las luces encendidas por el movimiento del primer jugador como un conjunto , y el número más pequeño de luces que se puede lograr con la mejor jugada para el segundo jugador como un número . La mejor jugada para el primer jugador es elegir un conjunto que maximice . Por lo tanto, se puede describir el número más grande de luces que se puede lograr con la mejor jugada para el primer jugador como un número . Más allá de la cuestión de cómo jugar bien en un juego individual, una cuestión más amplia que ha sido objeto de investigación matemática es caracterizar el valor de en general, como una función de y , para determinar su comportamiento como una función, o para calcular su valor para tantas combinaciones de y como sea posible.
Se ha resuelto el caso de una matriz cuadrada para . Además, se han encontrado límites inferiores para para . [8] [9] [10] [11] Estos números son:
Asintóticamente , estos números crecen a medida que . [2] [5] [12]
Debido a que hay exponencialmente muchas opciones para elegir qué interruptores activar, no es posible realizar una búsqueda exhaustiva de la opción óptima para juegos grandes , lo que plantea la pregunta de qué tan bien pueden jugar este juego los jugadores con limitaciones computacionales.
El primer jugador puede hacer que el valor esperado del juego sea jugando aleatoriamente. De manera similar, el segundo jugador puede obtener un valor cuya distancia esperada desde es jugando aleatoriamente; este valor puede ser mayor o menor que , pero si es mayor, el segundo jugador puede activar todos los interruptores de fila para obtener un valor que sea menor en la misma cantidad. [2] [5] [12] Esta estrategia aleatoria para el segundo jugador se puede hacer no aleatoria utilizando el método de probabilidades condicionales , dando un algoritmo de tiempo polinomial que obtiene las mismas garantías de valor de solución. Una desaleatorización diferente da un algoritmo paralelo en la clase de complejidad NC . [13]
Encontrar la elección óptima para el segundo jugador en el juego, una vez que el primer jugador ha elegido qué bombillas encender, es un problema NP-difícil . [14] Sin embargo, existe un esquema de aproximación de tiempo polinomial para el juego que puede encontrar una elección para el segundo jugador que deja solo veces el número mínimo posible de bombillas encendidas, para cualquier , en el tiempo . [15]
El juego de conmutación de Berlekamp se puede utilizar en la teoría de la codificación como una demostración del radio de cobertura de un determinado código lineal binario . Un código lineal binario de longitud y dimensión se define como un subespacio lineal -dimensional del espacio vectorial -dimensional sobre el campo finito con dos elementos , . Los elementos del subespacio se denominan palabras de código y el radio de cobertura es el número más pequeño tal que cada punto de está dentro de la distancia de Hamming de una palabra de código.
Sea y . Para estos valores de parámetros, el espacio vectorial describe todos los patrones posibles de bombillas encendidas en la matriz de bombillas, con una operación de adición vectorial que combina dos patrones encendiendo las bombillas que aparecen exactamente en uno de los dos patrones (la operación de diferencia simétrica en los conjuntos de bombillas encendidas). Se puede definir un subespacio lineal que consiste en todos los patrones que el segundo jugador puede apagar por completo, o equivalentemente de todos los patrones que el segundo jugador podría crear comenzando con un tablero que está completamente apagado. Aunque el segundo jugador tiene opciones sobre cómo configurar el segundo banco de interruptores, este subespacio tiene elementos, lo que le da dimensión , porque encender todos los interruptores del segundo jugador no tiene efecto en el patrón de bombillas encendidas.
Entonces es el radio de cobertura de este código. El conjunto de bombillas encendidas elegidas por el primer jugador, con mejor juego, da un punto de que está lo más alejado posible del subespacio lineal. El conjunto de bombillas cuyo estado cambia el segundo jugador, con mejor juego, da el punto más cercano en el subespacio lineal. El conjunto de bombillas que permanecen encendidas después de estas elecciones son aquellas cuyo número define la distancia de Hamming entre estos dos puntos. [1]