Hoy en día, si ponemos a jugar a una computadora ajedrez puede jugar al nivel de un profesional. Esto es cierto incluso con computadoras comerciales o celulares. Sin embargo, hay otro juego aún más viejo que el ajedrez en el que falta mucho para que esto suceda. Este es el juego “go”, que ahora se mantiene como uno de los retos más importantes para programadores de inteligencia artificial. Enseñarle a una computadora a jugar go ha resutlado mucho más difícil que hacerlo con ajedrez.
Cuando una computadora juega un juego de mesa, lo que hace es seguir un algoritmo. Es decir, tiene una sequencia de instrucciones que sigue para elegir una jugada. Para juegos sencillos (como “gato”, por ejemplo) la computadora puede saber cuales son todas las maneras en las que puede seguir el juego y hacer la mejor elección. En juegos más complicados, como el ajedrez, pedirle a una computadora que verifique todos las maneras en las que puede seguir el juego sigue siendo demasiado tiempo. Si hubiera 25 jugadas posibles en cada turno, para ver todas las posibilidades para 9 turnos se necesitarían ver casi 4 mil millones de tableros y luego usarlos para ver cuál jugada conviene más. En este caso, lo que hace la computadora es checar la mayor cantidad de jugadas posibles en el tiempo que tiene y hacer la mejor elección con esa información.
La primer computadora en ganarle un partido al mejor jugador de ajedrez del mundo en ese momento fue Deep Blue de IBM contra Kasparov en 1996. Creo que es la única vez que he visto una noticia respecto a ajedrez llegar a tal nivel de difusión. Cabe notar que Deep Blue checaba 200 millones de jugadas por segundo. La primer computadora en ganarle al mejor jugador del mundo una serie de partidos fue “Deeper blue” un año después. Esa era la 259 súpercomputadora más poderosa en ese momento. A pesar de que en los últimos años los partidos entre computadoras y los mejores profesionales han estado parejos, ya se sabe que los programas tienen la fuerza suficiente para ganarles. En go la historia es completamente diferente.
El juego de go es alrededor de 2000 años más viejo que el ajedrez. Se juega en un tablero de 19x19, en donde dos jugaores van poniendo alternadamente fichas negras y blancas respectivamente. El objetivo del juego es tener la mayor cantidad de territorio (espacios vacíos rodeados por fichas de un color) y capturar la mayor cantidad de fichas del enemigo (al rodear completamente sus fichas). La gran diferencia entre el go y el ajedrez (desde el punto de vista de un computólogo) es que entendemos el ajedrez mucho mejor. Por ejemplo, hay muchísimos libros sobre maneras de empezar el juego en ajedrez, y se tiene muy claro cuáles son mejores que otras. En go, el principio del juego sigue siendo tema de mucho debate. Se tiene una muy buena idea de cuáles secuencias locales de jugadas son buenas, pero a la hora de pensar en todo el tablero se sabe mucho menos que comparado con el ajedrez. Explicarle a una computadora cómo decidir qué tan buena es una posición también resulta mucho más difícil. En el ajedrez, se sabe con cierto detalle cuál es el valor de cada pieza y cúanto vale una posición (como dominar el centro). En go, como todas las piezas son iguales, la computadora tiene que saber evaluar elegir tener influencia en alguna parte del tablero y tener grupos “fuertes” de fichas. Para hacer el problema más difícil, la cantidad de jugadas posibles es abrumantemente más grande.
Hasta hace unos años, una computadora no podía jugar go mucho mejor que un principiante avanzado. Ahora hay programas que han mejorado significantemente la situación (sobre todo en tableros chicos como de 9x9), pero jugar de manera pareja con un profesional es todavía algo lejano. El primer progreso importante en este sentido lo hizo el programa MoGo. Este programa pudo ganarle un juego de tres a un profesional 5 dan con 9 piedras de ventaja. El jugador es claramente mejor que la computadora, pero es el primer juego que se le logra ganar a un profesional en un tablero de 19x19. Para hacer notar lo díficil que es el problema de hacer un programa eficiente, MoGo checa jugadas básicamente al azar y luego revisa con qué jugada quedarse. La computadora que se usó para ganar ese partido es más de 1350 veces más rápida que Deeper Blue cuando le ganó a Kasparov.
El hecho de que con estas capacidades de cálculo apenas se le pueda ganar a un profesional con 9 piedas de ventaja (la victoria fue por sólo 1.5 puntos) dice mucho del problema. Más que hacer que los programas revisen más movidas, lo que se tiene que hacer es enseñarles mejor el juego. Creo que la razón por la que esto no se ha podido hacer de manera eficiente es porque descartar las jugadas malas es significantemente más complicado. A pesar de que un jugador profesional pueda ver un tablero y reducir las posibilidades a 5 jugadas o menos, una computadora todavía no puede hacer esto. Poder enseñarle a una computadora a hacer este tipo de decisiones va a ser un paso importante no sólo para que jueguen bien go, sino para tener una máquina que “piense” por sí sola.