title: Complejidad en los juegos
text: # Complejidad en los juegos
  
  La teoría de juegos combinatorios posee diversas maneras de medir la complejidad en los juegos. Este artículo describe cinco de ellas: complejidad estado-espacio, tamaño del árbol del juego, complejidad de las decisiones, complejidad del árbol del juego, y complejidad computacional.
  
  # Complejidad en los juegos
  ## Medidas de la complejidad de un juego
  
  * La complejidad del estado-espacio de un juego es el número de posiciones legales del juego accesibles desde la posición inicial del juego.
  Cuando esto es demasiado difícil de calcular, un límite superior puede ser computado a menudo incluyendo las posiciones ilegales o las posiciones que nunca pueden presentarse en el curso de un juego.
  * El tamaño del árbol del juego es el número total de las instancias posibles que puedan ser aplicadas al juego, es decir, es el número de los nodos hoja en el árbol del juego cuya raíz es la posición inicial.El árbol del juego es sumamente más grande que la complejidad del estado-espacio porque las mismas posiciones pueden ocurrir en muchas instancias del juego, haciendo movimientos en diverso orden (por ejemplo, en una partida del Tres en raya con dos X y un O en el tablero, esta posición se habría podido alcanzar de dos maneras diferentes, dependiendo de dónde fue puesto el primer X). Un límite superior para el tamaño del árbol del juego puede ser computado a veces, simplificando el juego de manera que aumente sólo el tamaño del árbol del juego (por ejemplo, permitiendo movimientos ilegales) hasta que llega a ser manejable.
  Sin embargo, para los juegos donde el número de movimientos no se limita (por ejemplo por el tamaño del tablero, o por una regla sobre la repetición de la posición) el árbol del juego es infinito.
  Las dos siguientes medidas usan un árbol de decisión. Un árbol de decisión es un subárbol del árbol del juego, con cada nodo etiquetado como “jugador A gana”, “jugador B gana” o “empate”, donde puede probarse que ese nodo tiene ese valor (asumiendo que ambos jugadores hacen el mejor movimiento) solo con examinar otros nodos del grafo. (Los nodos terminales pueden ser etiquetados directamente; un nodo en la que le toque mover al jugador A puede etiquetarse con “jugador A gana” si nodo sucesor es una victoria para A, o etiquetado con “jugador B gana” si todos los nodos sucesores, son victorias para B, o etiquetado como “empate” si todos los nodos sucesores son o empates o victoria para B. Y de manera análoga, para las posiciones en las que mueve B).
  * La complejidad de decisión de un juego es el número de nodos hoja en el árbol de decisión más pequeño que establece el valor de la posición inicial. Todo árbol incluye todas las posibles decisiones para el jugador que mueve en segundo lugar, pero solo una
  posibilidad para cada decisión del jugador que comienza la partida.
  * La complejidad del juego-árbol de un juego es el número de nodos hoja del árbol de decisión completo en anchura que establece un valor en la posición inicial. (Un árbol completo en anchura incluye todos los nodos de todos los niveles). Ésta es una estimación del número de posiciones que podríamos tener que evaluar en una búsqueda usando el algoritmo minimax para determinar el valor de la posición inicial. Es difícil estimar la complejidad del juego-árbol, pero para algunos juegos un límite inferior razonable puede darse elevando el número de hijos medio de cada nodo al número de turnos que hay en el juego medio.
  * El coste computacional de un juego describe la dificultad asintótica de un juego que crece de manera arbitraria, expresada en notación de cota superior o como miembro de una clase de complejidad. Este concepto no es aplicable a juegos concretos, pero si a juegos que han sido formalizados para que puedan ser aleatoriamente grandes, generalmente jugándolos en un tablero de n por n. (Desde el punto de vista de la complejidad computacional de un juego en un tablero de tamaño fijo, es un problema finito que se puede resolver en O(1), por ejemplo, con una tabla de búsqueda de posiciones en el mejor movimiento en cada posición).
  
  # Complejidad en los juegos
  ## Ejemplo: Tres en raya
  
  Para el juego de Tres en raya podríamos tener un límite de 3$^9$ = 19.683 maneras de rellenar el tablero (tres posibles estados para cada celda y nueve celdas). Esta cuenta incluye muchas posiciones ilegales tales como una posición con cinco cruces y sin ceros, o una posición en la que ambos jugadores tienen una fila de tres. Aplicando a estas restricciones, tenemos una cuenta mejorada, en la que eliminando estas posiciones ilegales, podríamos tener 5.478 combinaciones para rellenar. Aunque... son consideradas idénticas, hay solo 765 posiciones estrictamente diferentes. Si atendemos a la cota superior del árbol que genera el tablero, tenemos 9!=362.880 (9 posiciones para el primer movimiento, 8 para el segundo, y así sucesivamente). Esta cuenta incluye partidas y movimientos ilegales, ya que el juego puede haber terminado. Si refinamos entonces las combinaciones tenemos 255.168 posibles movimiento. Si además añadimos que las rotaciones de las posiciones son consideradas las mismas, tenemos sólo 26.830 lanzamientos. La complejidad computacional del tres en raya depende de la forma en que esté formalizado. Una formalización natural sería juegos m,n,k, que sería un tablero de m x n siendo el ganador el que consigue obtener k en raya. Es trivial que el juego puede ser resuelto DSPACE (mn) con la búsqueda del árbol del juego. Esto lo coloca en una clase de complejidad importante, PSPACE. Con un poco más de trabajo se puede demostrar que es PSPACE-completo.
  
  # Complejidad en los juegos
  ## Complejidad de algunos juegos conocidos
  
  Debido a la gran cantidad de complejidades en los juegos, esta tabla da la aproximación superior de su logaritmo en base 10. Los números mostrados a continuación deben ser considerados con precaución: cambios aparentemente pequeños en las reglas del juego pueden cambiar estos números (que no son estimaciones demasiado exactas) por tremendos factores, que pueden ser fácilmente mucho mayores que los datos ofrecidos.
  | Juego | Tamaño del tablero (cells) | Complejidad estado-espacio (como log en base 10) | Complejidad del árbol del juego (como log en base 10) | Longitud media del juego (número de turnos) | Clase de complejidad del juego formalizado |
  | Tres en raya | 9 | 3 | 5 | 9 | PSPACE-completo |
  | Pentominó | 64 | 12 | 18 | 10 | ?, pero en PSPACE |
  | Conecta cuatro | 42 | 14 | 21 | 36 | ?, pero en PSPACE |
  | Damas inglesas (8x8) | 32 | 20 or 18 | 31 | 70 | EXPTIME-completo |
  | Oware | 12 | 12 | 32 | 60 | La generalización está incompleta. |
  | Qubic | 64 | 30 | 34 | 20 | PSPACE-completo |
  | Fanorona | 45 | 21 | 46 | 22 | ?, pero en EXPTIME |
  | Nine Men's Morris | 24 | 10 | 50 | ? | ?, pero en EXPTIME |
  | Damas internacionales (10x10) | 50 | 30? | 54 | 90 | EXPTIME-completo |
  | Damas chinas (2 conjuntos) | 121 | 23 | ? | ? | ?, pero en EXPTIME |
  | Damas chinas (6 conjuntos) | 121 | 35 | ? | ? | ?, pero en EXPTIME |
  | Líneas de acción | 64 | 24 | 56 | 63 | ?, pero en EXPTIME |
  | Reversi | 64 | 28 | 58 | 58 | PSPACE-completo |
  | Hex (11x11) | 121 | 56 | ? | 40 | PSPACE-completo |
  | Gomoku (15x15, freestyle) | 225 | 105? | 70 | 30 | PSPACE-completo |
  | Ajedrez | 64 | 50 | 123 | 80 | EXPTIME-completo |
  | Conecta6 | 361 | 172 | 70 or 140 | 15 or 30 | PSPACE-completo |
  | Backgammon | 28 | 20 | 144 | 50-60 | La generalización está incompleta. |
  | Xiangqi | 90 | 40 | 150 | 80? | ?, se cree que es EXPTIME-completo |
  | Janggi | 90 | 44 | 160 | ? | ?, se cree que es EXPTIME-completo |
  | Quoridor | 81 | 42 | 162 | ? | ?, pero en PSPACE |
  | Amazonas (10x10) | 100 | 40 (cota superior) | ? | ? | PSPACE-completo |
  | Shōgi | 81 | 71 | 226 | 110? | EXPTIME-completo |
  | Arimaa | 64 | 43 | 296 | 70 | ?, pero en EXPTIME |
  | Go (board game) 19x19 | 361 | 171 | 360 | 150 | EXPTIME-completo |