Pons Asinorum

El hablar, por su facilidad, puede ser imitado por todo un pueblo; la imitación en el pensar, del inventar, ya es otra cosa.

Ajedrez y ordenadores

Publicado el 20 de julio de 2006 4 comentarios

Send to Kindle

Hombres contra máquinas.

En 1994, quien tenía un ordenador, alardeaba gustosamente de ello. Cuando uno de mis compañeros de clase se enteró de que me gustaba jugar al ajedrez, me comentó que él tenía un juego de ajedrez en su ordenador, y que era muy bueno.
A mi amigo le sorprendió que le dijera, con una absoluta indiferencia, que yo era mucho mejor que su juego de ajedrez. En realidad, nunca había jugado contra un ordenador, pero eran conocidos los muchos defectos que tenían las máquinas jugando al ajedrez. En especial, se hablaba mucho del efecto horizonte.
Aún cuando el ordenador es capaz de calcular muchas más jugadas que una persona, en algún momento del proceso debe detener sus cálculos. Ahí, es donde el ordenador actúa mucho peor que una persona y pierde su ventaja.
El efecto horizonte puede entenderse con este ejemplo: supongamos un hombre y una máquina que se encuentran en la ventana de un rascacielos, digamos en el piso 46. Una persona, podría considerar el tirarse por dicha ventana. Sus cálculos serían muy simples: al principio caería a la altura del piso 45. Eso no sería grave. Pero a partir de ahí, dada la altura a la que se encuentra, y la presumible aceleración, el resultado apunta a que sería muy doloroso.
El ordenador iría más lejos en sus cálculos. Consideraría la situación de caída, a la altura del piso 45. No le parecería preocupante. Luego vería que se llegaría a la altura del piso 44. Y luego al 43. En principio, calcularía la velocidad creciente de caída, pero no detectaría ningún peligro. El ordenador podría continuar sus cálculos hasta llegar al piso 20, o al piso 10 y ahí detener sus cálculos. Su conclusión final sería: una sensación muy fresca, del viento en la cara. Y saltaría.
Así, en el juego de ajedrez ocurre lo mismo. El ordenador calcula muchas jugadas – pero matemáticamente es imposible calcular hasta el final. En algún momento detiene su cálculo y se pone a mirar. Y ahí, los ordenadores eran muy malos, a decir verdad, ridículos. Mi amigo no pareció entender eso y se ofendió ante mi actitud chulesca. Durante mucho tiempo me insistió con apostar a ver quién ganaba. Finalmente, fui un día a su casa a jugar esa partida.
Aunque mi historia sucedió en 1994, una apuesta similar, a nivel más académico, había tenido lugar en 1968, entre David Levy, un maestro de ajedrez, y John McCarthy, un eminente investigador en Inteligencia Artificial de la prestigiosa Universidad de Stanford. Fueron 3.000 dólares, que era bastante dinero en la época. En este caso, la apuesta se hizo a largo plazo. Levy afirmó que nadie en el mundo sería capaz de tener una máquina que pudiera ganarle en diez años. Para un investigador, parecía plazo suficiente.
No recuerdo muy bien como fue mi partida contra el ordenador. Jugó la apertura con mucha corrección, hasta el punto de preocuparme por primera vez. Sin embargo, en cuanto salimos de la teoría de aperturas, comenzó a jugar como un niño pequeño, y le gané con suma facilidad. Más que lo mal que jugó, me sorprendió lo sorprendido que estaba muy amigo. Al fin y al cabo no tendría más que un costosísimo 486, con una potencia de cálculo similar a la de mi lavadora.
Mayor decepción debió sentir John McCarthy cuando, diez años después, tuvo que presentarse a jugar contra Levy. Él sabía que el programa que habían desarrollado no era lo suficientemente bueno. Efectivamente, Levy ganó con suma facilidad y se embolsó los 3.000 dólares.
La actitud de Levy también había parecido chulesca. Tras su victoria, la revista científica Omni ofreció un premio de 5.000 dólares al primer programa que fuera capaz de ganar a Levy. Hicieron bien en no establecer otro plazo de diez años, porque fueron exactamente once los años necesarios para que Deep Thought, el primer programa de ajedrez potente, le venciera en 1989.
Mientras los programadores informáticos se afanaban en pulir sus algoritmos de juego al milímetro, bebían la triste decepción de que sus resultados sólo mejoraban conforme la industria del hardware iba sacando mejores productos.
Al fin y al cabo, la dificultad mayor para un ordenador es saber cuando hay que dejar de calcular.
Para un hombre, es relativamente sencillo, pero para uno ordenador es algo demasiado complejo. Pensemos en que tenemos 20 euros que gastar en las rebajas. Hay para comprar una prenda. El ordenador tendría tiempo físico de mirar todas las prendas de la tienda, cosa que las personas no podemos – algunas mujeres sí podrían. Sin embargo, el ordenador tendría problemas para saber cual le queda bien. Tendría que probárselas todas. Hacer combinaciones con diversos pantalones y camisas, mirar los zapatos. Al final, elegiría sin mucha seguridad, por falta de tiempo. Los humanos no compraríamos la prenda idónea pero nos calentaríamos la cabeza mucho menos y elegiríamos mejor que el ordenador.
El trabajo de los programadores era inculcarle un gusto al ordenador. Sin embargo, cuando el hardware se mejoraba, esto no hacía tanta falta. Antes el programador ahorraba tarea suponiendo que los zapatos eran negros. Con procesadores más potentes, se podía probar con todos los modelos de zapatos del mundo y combinarlos con calcetines en el mismo tiempo que antes con los zapatos negros. Realmente frustrante.

La rebelión de las máquinas

Levy había perdido la apuesta a manos de Deep Thought, en 1989. Para esa época, ordenadores potentísimos eran rivales muy respetables. Sin embargo, sólo a nivel de exhibición. Ya sabemos cómo era la informática en blanco y negro. El ordenador era del tamaño de una habitación y costaba más de lo que sus programadores podrían ganar en toda su vida. Poco a poco fueron haciéndose ordenadores más potentes en menos espacio. Afortunadamente para mi honor, los ordenadores personales de 1994 no tenían potencia suficiente para ser serios rivales.
Sin embargo, en 1997, el mundo del ajedrez andaba conmocionado: el campeón del mundo, Gari Kasparov, había perdido un match contra un ordenador, Deep Blue. Lo imposible, había acabado ocurriendo.
No era la primera vez que Kasparov perdía contra un ordenador. Poco a poco, habían ido adquiriendo títulos. Primero fue noticia el primer ordenador que ganó a un Maestro Internacional. Luego el que venció a un Gran Maestro. Después, a un antiguo campeón del mundo. En 1994 Kasparov había perdido contra el programa Fritz en un torneo de partidas rápidas.
En partidas rápidas los ordenadores son mucho mejores que las personas desde hace mucho tiempo. La forma de pensar de las personas es muy ineficiente, y a un ritmo de tiempo breve, casi todo se realiza siguiendo consideraciones generales, sin calcular casi nada. Esto provoca que se comentan errores de cálculo que normalmente no son evidentes para otra persona que también dispone de poco tiempo para descubrirlos. Pero un ordenador no suele perdonar los errores de cálculo. Así, Kasparov sólo defendía el honor de las personas a ritmos lentos, donde realmente se nota la diferencia entre unos y otros.
La derrota de Kasparov en 1997, a manos de Deep Blue, fue portada de periódicos. Significaba demasiadas cosas. Ajedrecísticamente, Kasparov era campeón del mundo desde hacía 13 años y eclipsaba a todos sus rivales de la época. Nunca había perdido un match (encuentro entre dos rivales a un número determinado de partidas) en toda su vida. Y ahora, lo hacía a manos de un ordenador. Lo que Levy había predicho como imposible hacía treinta años, ahora se hacía realidad. Los ordenadores eran mejores que las personas.
Fuera del mero hecho ajedrecístico, la derrota apuntaba un futuro muy prometedor para el mundo de la informática. Las acciones de IBM – la empresa que andaba tras el desarrollo del Deep Blue ( que no era más que una evolución del anterior prodigio Deep Thought ) – subieron mucho el día que se produjo la victoria. Entonces se podía volver a la euforia: pronto los ordenadores pensarían por sí mismos, serían capaces de hablar y escribir libros. Etcétera.
En aquella época, ya existían los primeros programas de ajedrez domésticos que eran realmente poderosos. Históricamente, el gran acaparador del mercado siempre fue ChessMaster. Y no porque fuera el mejor programa. En realidad, nunca estuvo entre los mejores del mundo. Como en tantas facetas de la vida, ser el mejor no es suficiente. Gráficos más trabajados, facetas ridículas como animaciones de las piezas, tenían más éxito entre los futuros compradores – abonados a la derrota – que utilidades más profesionales. Hoy en día, ChessMaster (cuyas versiones van multiplicadas por mil para sonar mejor) va por la décima edición. Sigue siendo el mejor, porque al fin y al cabo apunta al mercado del aficionado, que es el realmente amplio.
A nivel profesional, el más famoso programa de los años noventa fue Fritz. Él fue el superventas a nivel profesional y entre los fuertes aficionados, que más que un rival poderoso, lo que querían era una segunda opinión en casa. Alguien que les recomendara que mover en las posiciones que ellos, en sus partidas contra otros rivales, podrían llegar a tener. El papel era más de maestro que el de compañero de juegos.

Aprendiendo de los ordenadores

A finales de los noventa, jugar contra un ordenador era muy difícil, pero sobre todo, desagradable. La forma de jugar de los ordenadores era muy particular y perfectamente reconocible. Eran muy dados a hacer movimientos no tan buenos, jugadas que en los cálculos no habías considerado, por no parecer buenas, pero que a decir verdad no eran tan malas. Pero si algo define al juego de los ordenadores, era su facilidad para comérselo todo.
La primera lección, que costó años digerir, que los humanos aprendimos de los ordenadores, era que la captura es, normalmente, la mejor jugada. Me lo como y luego pienso. Todo un revés a la teoría de muchos años en torno a los sacrificios del ajedrez, paradigma del dominio de la mente humana sobre las máquinas.
Un sacrificio en ajedrez es la entrega de piezas o peones, sin haber calculado las consecuencias finales de dicha entrega, pero considerando como muy probable el llegar a buen puerto. Por ejemplo, se puede sacrificar un alfil a cambio de colocar la dama más cerca del rey rival, en la esperanza de que esa aproximación sirva para acabar dando jaque mate. Si hemos calculado todo, desde la pérdida del alfil hasta el jaque mate, no se trata de un sacrificio, sino de un sacrificio aparente.
En la vida real, podríamos pensar en el sacrificio de levantarnos temprano, durante los fines de semana, para estudiar. Esperamos que ese esfuerzo, se compense en un futuro obteniendo un título académico y un buen trabajo. Sin embargo, si para irnos a Hawai tenemos que madrugar para coger el vuelo, no se trata de un sacrificio, porque estamos seguros de las consecuencias de ese madrugar: nos vamos a pegar la vida padre en la playa.
Los ordenadores desmontaban la falacia de varios siglos sacrificando más de la cuenta. En ajedrez, como en los deportes, defenderse es más difícil que atacar. El bando que captura la pieza sacrificada tenía tendencia a acabar equivocándose, dejando la entrega del rival como un hecho artístico. Sin embargo, los ordenadores siempre han sido mejores defensores que atacantes. Ellos no sienten nervios ni presión. Sus victorias constantes, tras jugar como auténticas aves de rapiña, capturando lo que el rival ofrecía y lo que no, empezó a servir como la primera evolución al juego del ajedrez aportada por las máquinas. Tras años de esfuerzo de los programadores, intentando inculcar ideas humanas a las máquinas, ahora podíamos aprender algo de ellas.
Con el tiempo, jugadores muy fuertes se hicieron famosos por su estilo máquina. Capturarlo todo, defenderse tenazmente. El ejemplo más claro es el ucraniano Ponomariov, que fuera campeón del mundo de ajedrez en 2002, con tan sólo dieciocho años. Pero no sería el único.
En general, los jugadores se hicieron mucho más desconfiados, nadie entregaba material al rival tan alegremente y in dubio, se capturaba siempre lo que nuestro rival nos regalaba. Esto desembocó en que las partidas fueron siendo cada vez menos vistosas. Más parecidas al fútbol italiano. Es por ello que jugar contra un ordenador no era agradable. Cuando se les vencía, era porque no se habían enterado de nada. Y cuando nos ganaban, dejaban un mal sabor de boca.
El hardware seguía evolucionando, con el invento del procesador Pentium los equipos domésticos eran cada día más fuertes. Al llegar a la época actual, nos encontramos con que los ordenadores personales, con programas de ajedrez, pueden ganar a todos los jugadores del mundo. Esto resulta una gran ayuda para los jugadores profesionales, que ya no necesitan ir a escuelas de ajedrez o tener entrenadores. Ahora, con el uso del ordenador, pueden preparar nuevas ideas que sorprendan a sus rivales. Siguen existiendo entrenadores de ajedrez, pero se parecen más a un consultor, alguien que, mediante la tecnología y sus propios conocimientos, puede obtener recetas que ofrecer, ya preparadas, al jugador profesional. Pero el grueso del trabajo lo realiza el ordenador.
Son muchos los programas de ajedrez potentes que hay en el mercado. Fritz sigue siendo muy famoso y el más usado entre profesionales. Chessmaster sigue siendo el superventas que compra el padre de familia. Los campeones del mundo de ordenadores sin embargo suelen ser otros. Shredder, desarrollado en Alemania, es uno de los más poderosos, Junior, hecho en Israel, es el actual campeón del mundo de ordenadores. Hydra, desarrollado por un equipo en Emiratos Árabes, apunta a ser el futuro campeón indiscutible.
Todos estos programas, aun cuando juegan muy bien, no ganan tanto dinero con las ventas. Como antes he indicado, los gráficos de Chessmaster hacen más caja que los millones de jugadas por segundo de los mejores programas. Y es que ahora que cualquiera puede ganar a una persona, tras años de duras investigaciones e infinitas horas delante del ordenador, los fabricantes de software se dan cuenta de que han ido demasiado lejos.

El reto de la jugabilidad

Uno de los detalles que menos se han cuidado en el diseño de programas que jueguen al ajedrez, es el de la jugabilidad. Cualquier juego comercial, por complejo que sea, debe permitir que el aficionado, tras muchas horas de práctica, acabe completando todas las pantallas, consiguiendo todos los récords. En PC fútbol hay quienes han conseguido hacer campeón de la Champions League al equipo de su pueblo, que juega en regional, tras aprender todos los trucos imaginables.
En ajedrez, obcecados con hacer máquinas mejores, se ha olvidado al gran público. Casi a desgana se han creado niveles fáciles, para que los aficionados puedan jugar de igual a igual con el ordenador y llevarse alguna alegría para el cuerpo. Pero esos niveles fáciles son lamentables.
Se han realizado los siguientes intentos para que el ordenador pueda jugar mal:
Una aproximación es que el ordenador vaya jugando contra la persona y, cuando la persona se equivoque, el programa le avise. Esto mina la moral, además de resultar muy molesto. Los programadores de Fritz incluso tuvieron la idea de que el ordenador hablara. Al tratar de resultar irónico, sus comentarios resultaban demasiado ofensivos, por lo que todos los jugadores deshabilitaban esa opción.
Otra idea es que el ordenador comience jugando normal y luego vaya cometiendo más y más errores, dando oportunidades al rival de desquitarse. Esto resulta muy artificial y a veces ridículo, porque en el comienzo ha podido obtener tanta ventaja el ordenador que prácticamente tenga que hacerse el harakiri con cada una de sus piezas antes de que el aficionado pueda recuperar el pulso a la partida.
Una de las ideas más generalizada fue la retro, volver al pasado y no calcular muy lejos, como forma de jugar mal para el ordenador. Calcular menos variantes. Pero si esto no funcionaba en el pasado, tampoco ocurre ahora. Que un ordenador se tire por el balcón de un piso tres resulta tan molesto para el aficionado como que lo haga por el treinta y tres para el jugador más fuerte.
La que parece la idea más interesante es la de modificar la función de evaluación. La función de evaluación es la parte del programa que cuantifica las decisiones a tomar por el ordenador. Tras calcular muchas variantes, un ordenador valora una posición dada con un número. +1 significa que considera su posición bastante mejor para él. -1 que es bastante peor. +3 es para el ordenador una victoria a su favor casi asegurada.
En esta opción de modificar la opción de evaluación, por ejemplo, un ordenador determina una jugada muy buena, que le garantiza una ventaja de +2. Pero nuestro rival es un abuelo que no juega demasiado bien. Entonces el ordenador sigue pensando, hasta encontrar otra jugada no tan buena. Y encuentra una que sólo da ventaja de +0,5. Aún así, si el rival ha elegido un nivel demasiado bajo, puede significar demasiado. En la tercera elección el ordenador se encuentra contra la espada y la pared. Elige una jugada que le deja en pequeña desventaja. -0.5.
Esta idea es muy buena, pero falla en la práctica. En determinadas posiciones sólo hay una jugada buena posible. Si el ordenador no la toma, se puede ver obligado a entrar en un callejón sin salida. En otras situaciones, tras un error grave del aficionado, el ordenador no se siente capaz de castigarle, por lo que este puede ni darse cuenta de su error, con lo que no aprende.
Pero donde más se notan las deficiencias de esta técnica es en los finales de partida. En esta fase del juego, en que cada jugada es crítica, el ordenador se siente forzado a jugar muy mal. Si el aficionado ha conseguido, tras laboriosos esfuerzos, llegar al final con dos peones de ventaja, se encuentra con la decepción de que el ordenador no planta lucha. Sus jugadas nunca son las mejores. Si el ordenador acaba coronando una pieza – aun cuando esta pueda ser capturada por su rival – puede pedir una torre o un alfil, en lugar de la lógica reina. Esta sensación absurda en el final de partida, que choca ante lo bien que comienza el ordenador, deja un muy mal sabor de boca en el aficionado, que no se siente a gusto jugando así.

El futuro de los ordenadores

Tras tantos años de optimización de algoritmos, se acabó cayendo en la complacencia del hardware. La fuerza bruta del hardware le pudo al cálculo fino y elegante del software. Hoy en día la forma de desarrollar programas de ajedrez está muy documentado, incluso alguno de los mejores programas ha partido de una base de código abierto. Por eso sorprende que haya programas que sigan pautas diferentes. Rybka es, sin lugar a dudas, la gran sorpresa de la actualidad.
Rybka proviene de los esfuerzos de Vasik Rajlich, un Maestro Internacional de ajedrez que vive en Estados Unidos. En muy poco tiempo ha conseguido un programa realmente fuerte, uno de los favoritos en las competiciones mundiales. Su verdadera fuerza suele quedar oculta a los ojos de los jugadores de ajedrez. Si le muestran una posición de ajedrez a Fritz y a Rybka, cada uno puede llegar a una conclusión distinta. Si juegan entre sí, los resultados están bastante parejos. Sin embargo, el programador se sorprende ante los recursos que consumen uno y otro. Fritz dispara la memoria y la CPU al 100%. Es un glotón que para calcular sus millones de jugadas necesita tantos recursos como haya disponibles. Sin embargo, Rybka es tan modesto con Excel o Firefox. Apenas sin consume. Eso se traduce en un hecho sorprendente: Rybka calcula muchísimo menos que Fritz.
Aunque hay un absoluto secreto en torno a sus investigaciones, totalmente aficionadas y sin medios económicos, está claro que Rajlich ha encontrado una base para programar el ordenador mucho más eficiente que todos los demás. Y si ahora mismo no vence en los campeonatos mundiales es porque su programa es tan modesto que funciona a las maravillas sobre una máquina con un único procesador, como un PC de sobremesa. Hydra es un monstruo que funciona bajo un cluster Xeon, con varias decenas de procesadores y una memoria de 64 GB de RAM. Aún así, el modesto PC corriendo con Rybka, podría vencerle.
En el reciente Campeonato del Mundo de ordenadores de 2006, celebrado en Torino, Rybka ha obtenido un meritorio tercer puesto, a medio punto del vencedor. Es cuestión de meses que, tras su adaptación a máquinas multiprocesador, se aupe al primer puesto de la clasificación mundial.
Así, para el usuario avanzado, Rybka es el mejor programa de ajedrez que existe. Su forma de jugar es similar a la de un fuerte jugador de ajedrez. Sugiere mejores jugadas que Fritz. Se siente cómodo aún teniendo material de menos. Y sobre todo, es muy rápido. Su talón de Aquiles son los finales de partidas, donde es mucho más flojo que otras máquinas.
Pero si algo sorprende de Rybka es su facilidad de adaptarlo al usuario medio. Con un algoritmo, aún desconocido, pero que confía mucho menos en la fuerza bruta, es posible obrar el milagro. Que el ordenador, condicionado a elegir jugadas menos buenas, pueda obtener mejores resultados. La gente quiere rivales a los que ganar, pero que supongan un esfuerzo.
El mercado de los programas de ajedrez es de muchos millones de euros. No dudo que el gran trozo del pastel seguirá siendo para Chessmaster, pero estén atentos a Rbyka, que cada vez pisa más fuerte.
Muy interesante será seguir la pista a esta interesantísima cronología del ajedrez por ordenador, que ha servido de referencia para las fechas indicadas en este artículo.

Send to Kindle

Comentarios

4 comentarios a “Ajedrez y ordenadores”

  1. Luisito
    21 de julio de 2006 a las 8:24

    Interesante post. (Como siempre).

  2. Raúl
    25 de julio de 2006 a las 13:55

    No soy muy dado al peloteo, pero posts como éste demuestran que merece seguir apostando por la blogosfera como fuente real de conocimiento y culturización.

  3. JuanPablo
    29 de agosto de 2006 a las 23:51

    tiene razón Raúl; es de lo mejor que he visto escrito sobre este tema.

  4. willy
    13 de diciembre de 2006 a las 19:03

    entonces…para un recien iniciado la mejor opcion…sería??

Escribe un comentario





Suscribirme sin comentar

Contacto

Si quieres contactar con el autor de esta página, hazlo desde aquí.

Suscribirse (RSS)

Suscribirse (Email)

Buscar