Showing posts with label ajedrez por computadora. Show all posts
Showing posts with label ajedrez por computadora. Show all posts

Thursday, March 31, 2022

Mi partida contra M Chess Pro


Marty Hirsch es el creador de M Chess, un programa de ajedrez que ganase el Campeonato Mundial de Microcomputadoras en 1995. Hirsch es un ingeniero que incluso trabajó en la NASA. La leyenda cuenta que a los 7 años, Marty quería hacer un programa que fuese campeón mundial de ajedrez. El resultado es que lo logró en el ámbito de las microcomputadoras.


Marty Hirsch


Hay unas 8 versiones de M Chess, siendo la última comercial la octava, la cual se calificaba de "revolucionaria". En 1995 venció M Chess a tres grandes maestros (Torneo AEGON) y el éxito del software parece que tuvo que ver con la forma en como evaluaba las posiciones. De acuerdo al sitio Rebel, el software podía detectar táctica de largo alcance y tenía una comprensión posicional que no tenían otros programas.

Yo supe de M Chess Pro prácticamente al salir la primera versión. El software venía protegido contra copia pero aún así logramos copiar el disco de protección y hacer algunas copias "de evaluación". Alguien -que lo había comprado- lo llevó al club donde jugaba y lo inscribió a uno de los torneos. Jugué contra M CHess Pro y logré eventualmenteganar una pieza (después de una larga partida), pero después cometí algún feo error y perdí. Fue la única vez que jugué contra este programa y a pesar de mi derrota pensé que no lo había hecho tan mal.

Hoy reencuentro M Chess Pro y alguien ha coleccionado algunas de las versiones. Se puede correr en DosBox (como los programas ChessGenius para PC y Kasparov Gambit). Así que lo instalé y lo corrí en DosBox. Hoy jugué mi tercera partida con el Gambito de Rey y tenía curiosidad de cómo jugaría ese (ahora lejano) monstruo que tenía fama de ser muy fuerte.

De nuevo, el ritmo de juego fue de 1 hr 30 minutos + 30 segundos de incremento (para toda la partida). El programa usó 1 hr 30 para toda la partida sin incremento porque en 1995 no había relojes que permitieran los incrementos. Esta fue la partida:

M. López vs M Chess Pro 8

Gambito de Rey - 31/03/2022.

1. e4 e5 2. f4 exf4 3. Nf3 Nf6 4. e5 Ng4? Una jugada muy lamentable. Probablemente el libro de aperturas no contemple más que un par de variantes del gambito de rey.  5. h3 Nh6 6. d4 g5 7. h4 g4 8. Bxf4! Este sacrificio no es del todo idea mía. Hay muchas posiciones donde se puede dar esta jugada en el gambito de rey. 8. ... gxf3 9. Qxf3!? La computadora (Stockfish) da 9. Ag5 recuperando la pieza. Fácil y rápido. Sin embargo, como jugué permite hacer una partida animada y violenta. 9. ... Qe7 10. Nc3 c6? Las negras tienen demasiadas dificultades. 11. O-O-O Nf5? 12. Bg5 Qe6 13. g4 Ne7 jugada al instante 14. Ne4 Ng8! única. Increíblemente M Chess Pro se defiende de la única forma posible. 15. d5 cxd5 16. Rxd5! Na6 16. ... Dd5?? 17. Cd6+ gana en el acto. 17. Bc4 h5? 18. Rd4 hxg4 19. Qf4 Qg6 20. Rf1 Rh7 21. Rd6 


21. e6! es más contundente, pero la ventaja blanca es abismal. 21. ... Qg7 22. Rf6! Nxf6 23. Nxf6+ Kd8 24. Nh5+ Qxg5 25. Qxg5+ Kc7 26. Qf5 y aquí, con una ventaja de más de 9 puntos, di por terminada la partida 1-0.

Debo decir que de alguna manera me decepcionó el desempeño de M CHess Pro 8. Pensaba que jugaría mejor el gambito de rey, pero quedó clara su dificultad para valorar la situación. Así, se metió en demasiados líos y no tuvo oportunidad. Me quedé contento con esta partida porque dentro de todo, me parece que jugué soportando el espíritu agresivo de este gambito, tan popular en la era romántica del ajedrez.

Wednesday, December 30, 2020

Mi nuevo libro: Ajedrez por computadora, de Turing a las redes neuronales


Hace aproximadamente un año, decidí iniciar un nuevo libro sobre ajedrez por computadora. Este es un tema en el que he trabajado por muchos años y del cual tengo mucha, pero mucha información. Así entonces, puse manos a la obra y después de algunos meses terminé una primera versión del libro, el cual es un viaje por el fascinante mundo de quienes imaginaron tener una máquina que pudiese jugar al ajedrez y desde luego, aquellos que fueron pioneros en este campo.

El libro analiza los primeros programas de ajedrez, aquellos que jugaban en máquinas que costaban millones de dólares y que eran básicamente un experimento científico. Finalmente con la irrupción de la computadora casera, nacieron un número importante de programas que empezaban a hacer sus pininos en el mundo del ajedrez computarizado. Desde luego, la revisión de los programas en arquitecturas no sólo de 8 bits, sino de 16, 32 y 64 bits, se analiza con cierto detalle. Finalmente se llega a AlphaZero, el programa de ajedrez de DeepMind, que funciona como una red neuronal y que ha revolucionado la manera de pensar sobre el propio ajedrez, después de ver algunas partidas por demás increíbles de este nuevo ingenio computarizado.

Aparte de ello, se hace un análisis de los trabajos más importantes en el mundo del ajedrez por computadora, iniciando con el artículo de Alan Turing y de Claude Shannon, este último es probablemente el que dio la pauta de cómo debería escribirse un programa que jugase al ajedrez y que, de hecho, la mayoría de los programadores han seguido este camino, al menos inicialmente.

Dentro del libro el lector encontrará también mis propios hallazgos, por ejemplo, mi trabajo académico que ha sido base para finalizar el doctorado en ciencias de la computación. Estoy convencido que el ajedrez es un lenguaje y que nos hacen falta herramientas para usarlo como tal. Pongo pues, a tela de juicio, mis conclusiones sobre este tema en este mismo libro.

Finalmente, quiero agradecer al GM Miguel Illescas, que aceptó apoyar la publicación virtual de este libro. El mismo puede conseguirse gratuitamente si el lector interesado se suscribe a un año de la versión digital de la revista que dirige el propio Miguel, "Peón de Rey". Ojalá y este trabajo llegue a muchos lectores.

Este el el índice de la obra:




Monday, October 19, 2015

¿Pueden tener las computadoras intuición en el ajedrez?



El tema de la intuición siempre nos lleva por caminos misteriosos porque de alguna manera, quien por intuición, sin tener toda la información sobre un problema, halla la solución, nos asombra y no podemos explicar cómo es que lo hizo. Hay jugadores de ajedrez que desde muy pequeños saben dónde deben ir las piezas. Capablanca era uno de ellos. Kaspárov también desde chico mostró habilidades notables al respecto. Muchos otros jugadores de altísimo nivel nos han enseñado que desde pequeños tuvieron esa capacidad impresionante para jugar bien.

Uno podría preguntarse si la intuición se puede aprender. Yo estoy convencido que sí y además, explico qué hay que hacer en mi librito publicado por Chessy "Desarrolla la Intuición en Ajedrez". Pero más allá de eso, ¿Puede aprenderse la intuición de forma que pueda ser programada en un motor de ajedrez? ¿Cómo se podría hacer esto? Pues bien, hallé un estupendo librito "Chess and Machine Intuition" (1998), de George W. Atkinson. En él hace un desarrollo bastante completo del "estado del arte" en el tema del ajedrez, las computadoras y la intuición. Fragmentos del libro pueden hallarse en Google y dan una buena idea del contenido si no se quiere comprar el libro físico, que cuesta unos 30 dólares.  Atkinson hace un interesante viaje por los primeros programas de computadora, los errores, los fracasos y al final de cuentas, los avances que se empezaron a ver después de que los científicos estudiaron el problema por alrededor de unos 50 años, llegando a la postre a derrotar al Campeón Mundial Garry Kaspárov, en un encuentro a seis partidas.


Y aunque el libro se lee casi de una sentada, para decirlo de manera coloquial, el capítulo 10 y 11 (los dos últimos), son extraordinarios. En el capítulo 10 Atkinson se pregunta cómo es que aprendemos y de hecho, pone ejemplos de sistemas que buscan aprender. Habla de perceptrones, de su boom inicial para después ser destrozado por la crítica científica. Y ese capítulo en particular es del que quiero hablar aquí. Atkinson se pregunta cómo es que los seres humanos llegamos a sintetizar información, a clasificarla. Y además, pone ejemplos de cómo las máquinas y sus programadores han intentado emular esta cuestión. Realmente el asunto lo lleva incluso a hablar de Hollander y de su sistema de "algoritmo genético", fundamental en el desarrollo de la "Vida Artificial" (como en el librito que escribí de ese tema y que está publicado como libro electrónico en Kindle/Amazon bajo el título "Jugando a ser Dios").

Entonces Atkinson y sus argumentos me dejaron pensando. ¿Podría haber manera no de clasificar patrones o configuraciones ganadoras en ajedrez, a partir de los conocimientos humanos sino que, al contrario, la propia máquina tuviese alguna manera de hallar los elementos que hacen de una combinación ganadora? Es una pregunta que simplemente por el momento no puedo contestar. Me gustaría decir que sí, que se puede, pero francamente no se me ocurre ninguna idea para empezar a trabajar sobre ello. ¿Habrá que crear quizás una serie de primitivas (algo así como si fuesen axiomas), para pasar a este posible nivel de abstracción donde la computadora reconoce posiciones favorables? ¿Cómo hacer eso? Misterio.

Por lo pronto aquí dejo las cosas. En la medida que se me vayan ocurriendo ideas, las plasmaré en este blog.

Monday, September 28, 2015

¿La mejor partida de la máquina Belle?


Ken Thompson junto con Joe Condon diseñaron una máquina para jugar ajedrez. Sin duda Thompson, que trabajó por muchos años en los Laboratorios Bell, después adquirido por AT&T, tenía ciertas facilidades para pedir presupuesto para el proyecto que quisiese, sino es difícil explicar cómo es que se pudo realizar un trabajo como el crear hardware específico para jugar al ajedrez.  La historia es fascinante y Thompson se consiguió a un ingeniero electrónico que de hardware sabía mucho, Joe Condon, quien fue el que diseñó las tarjetas electrónicas de la máquina de ajedrez que sería bautizada como Belle.

Cabe decir que probablemente Ken Thompson sepa bastante de ajedrez y de hecho, recuerdo que cuando visité los Laboratorios Bell (1993), en algún momento pasamos por una sala donde había mesas de ajedrez y relojes. Evidentemente el ajedrez no estaba ahí por casualidad. Y digo que Thompson de ajedrez debiese saber más que lo suficiente fue porque él intuía que su máquina de ajedrez requeriría una biblioteca de aperturas, la cual la saco de un libro en particular, el cual le llevó meses transcribir para poderlo usar en su sistema.

Así, Condon y Thompson hicieron una estupenda mancuerna tecnológica: el primero en hardware y el segundo en software. Belle ganaría tres veces el Campeonato Mundial de Ajedrez por computadoras y demostraría un buen bagaje de herramientas y técnicas que después de él se tomaron muy en cuenta para sus sucesores. Bien Ken Thompson podría escribir un libro llamado "Mis Grandes Sucesores" [1]. Una estupenda reseña de los avances en cómputo, particularmente con Belle y su desarrollo puede verse en el libro "Chess and Machine Intuition", escrito por George W. Atkinson, el cual estoy terminando. Además de las propias opiniones del autor, Atkinson hace un desarrollo breve pero bastante completo del "estado del arte" en el ajedrez por computadora. Un libro sin duda muy recomendable.

La partida ntre Blitz (que eventualmente se convertiría en Cray Blitz), del año 1978, es muy importante, porque quizás fue la primera vez que una computadora analizó las consecuencias finales de un sacrificio que lleva al mate. Es cierto, sí, que esa combinación no se ve particularmente difícil para un jugador de primera fuerza, pero el avance fue sin duda importante, pues mostró cómo una máquina podía deshacerse de la idea de ser materialista y comerse cuanta cosa pudiese en una partida, para pasar a un nivel en donde incluso, los sacrificios eran posibles. En mi opinión,m el desarrollo de Belle fue un parteaguas para la siguiente generación de programas de ajedrez, como HiTech o ChipTest, por ejemplo.

He aquí la partida:

ACM 1978.12.06
Blitz 6.5 - Belle

1. e4 e5 2. Nf3 Nc6 3. Nc3 Nf6 4. Bb5 Nd4 5. Bc4 Bc5 6. Nxe5 Qe7 7. Bxf7+ Kf8 8. Ng6+ hxg6 9. Bc4 Nxe4 10. O-O 

La posición favorece sin duda a las negras. Tienen ventaja material a cambio de un rey en una posición relativamente insegura. Sin embargo, aquí Belle halla una combinación ganadora:



10. ... Rxh2! 11. Kxh2 la peor jugada, pues sigue mate en cuatro. Sin embargo, cualquier otra jugada no salvaba la partida. 11. ... Qh4+ 12. Kg1 Ng3 13. Qh5 gxh5 14. fxg3+ Nf3# 0-1

Fue tan impresionante esta partida para el propio Ken Thompson que mandó a hacer playeras con la posición final. Dicha playera la usó en el siguiente campeonato de computadoras.

Belle eventualmente llegaría a jugar unos 2203 puntos Elo y recibió un premio honorífico, haciendo a la máquina miembro de la Federación Estadounidense de Ajedrez, cosa que como David Levy dijo alguna vez: "esto sólo pasa en los Estados Unidos".


_____
[1] Haciendo referencia a la colección de Kasparov: "Mis Grandes Predecesores".
[2] La foto inicial de este artículo ilustra la posición de quizás la partida más famosa de Belle. En la foto se observan a Joe Condon (izquierda) y Ken Thompson, con la posición de la brillante partida en el momento del sacrificio.

Sunday, September 20, 2015

Cambio de paradigma


La investigación seria en el ajedrez por computadora habría empezado formalmente con el famoso artículo de Claude Shannon, en 1950, el cual marca las pautas para desarrollar un programa completo que pudiese jugar al ajedrez. Sorprendentemente las ideas de Shannon están vigentes hoy en día, en donde los mejores motores de ajedrez utilizan muchas de las ideas descritas en el mencionado artículo.

Los programas actuales utilizan una función que evalúa cada posición (que es un polinomio lineal) y un algoritmo MiniMax, que permite analizar el árbol de variantes creado y calcular la función en los nodos terminales. Este procedimiento MiniMax tiene una versión más sofisticada, llamada Alfa-Beta, que casualmente, bosqueja Allan Turing en su artículo sobre ajedrez aunque aparentemente no se da cuenta de ello. En la medida que se hace un árbol de variantes (jugadas, respuestas, jugadas, más respuestas), los programas pueden evaluar mejor las posiciones. Por ejemplo, si ejecutamos una jugada que sacrifica la dama comiéndose un peón, podemos pensar que esto da al bando rival una posición ganadora, pero si se acepta el sacrificio y entonces ese bando recibe mate, la jugada de la entrega de la dama exige que se vea más jugadas adelante. He aquí lo que se llama pues, el problema del horizonte o para ponerlo de forma llana: hasta dónde podemos ver.

Hoy en día los programas como Houdini, Komodo y Stockfish dominan el mercado y pueden analizar 10 o más jugadas adelante, en donde cada jugada está hecha por dos movimientos, uno del blanco y otro del negro. A eso se le llaman plies, por lo que un ply es media jugada, el movimiento de un solo bando. Pero aparte de analizar ya con mucha precisión y mejor que los seres humanos, valoran cada posición terminal cada vez de forma más exacta. Los programas líderes del mercado son notables y prácticamente imbatibles por los seres humanos.

Pero aunque este paradigma ha funcionado muy bien, por muchos años, quizás tantos como lleva la investigación de ajedrez, se ha buscado que los programas jueguen como lo hacen los seres humanos. Vamos, que los ajedrecistas de elite no calculan todas las jugadas, sino un subconjunto muy limitado y sin embargo, juegan muy bien. Y éste es el problema no resuelto: ¿Qué hacen los seres humanos para hallar la mejor jugada sin tener que crear un amplio y voluminoso árbol de variantes? Eso parece ser un misterio aún, pero se sigue trabajando en ello.


El cambio de paradigma apenas quizás está comenzando. El año pasado un estudiante puso una red neuronal profunda y la entrenó con 100 millones de jugadas (sacadas del servidor gratuito FICS). El programa entonces, viendo todas esas jugadas aprendió a jugar al ajedrez. No se declararon algoritmos específicamente, sino el algoritmo que usa una rede neuronal para poder extrapolar datos y sacar conclusiones.

Hoy hablan de otro programa, llamado Giraffe, que no analiza muchos plies, sino que entiende los valores posicionales y no requiere de analizar árboles grandes. Juega pues más como los humanos. De nuevo, una red neuronal es la responsable de este trabajo y parece ser que el programa aprendió, así como los niños prodigio como Capablanca, a jugar "sólo viendo" cómo su padre movía las piezas. De acuerdo al último reporte, Giraffe, en 72 horas de entrenamiento, ya logra jugar con la fuerza de un Maestro Internacional. Pero éste es un trabajo no terminado. Vamos a ver si se mantienen las conclusiones y si esto se convierte en una nueva manera de programar motores de ajedrez.

______
(*) Claude Shannon (derecha) le otorga el premio a Feng-Hsiung Hsu por ganar con Deep Thought el Campeonato Mundial de Ajedrez por Computadora, en Edmonton, Alberta, 1989.

Wednesday, October 08, 2014

Cuando una decisión cambia todo


Ayer salí de mi casa para ir al sur. Se me ocurrió no tomar el segundo piso a la altura de  San Antonio, pues el tránsito en el periférico parecía fluir normalmente. Sin embargo, pasando la entrada al segundo piso, cien metros después, hallé que los coches se empezaban a detener. Hubo un accidente de tránsito y ya estaba el automóvil de la aseguradora, una patrulla y una motocicleta de la policía, en donde estos dos últimos elementos por alguna razón habían detenido la entrada de la lateral, amén de cerrar el carril de la derecha (cuando el accidente ocurrió en el carril de alta velocidad). En fin, íbamos a vuelta de rueda pero cuando pasé el auto siniestrado, parecía que las cosas irían mejor. Pero no fue así. doscientos metros después regresamos al "vuelta de rueda". ¿La razón? Nunca la supe, pero de Barranca del Muerto hasta San Jerónimo las cosas fueron lentas, muy lentas.

Y entonces me puse a pensar cómo la decisión de no subirme al segundo piso me hizo padecer un tránsito inesperado y unos 40 minutos más de tiempo para llegar a mi destino. Una decisión que cambio todo. Y si me refiero a esto es porque en el Seminario de Inteligencia Artificial (Ajedrez por Computadora), estamos revisando la apuesta de David Levy.

La historia va así: En 1968 Donald Michie, fundador de l departamento de Inteligencia Artificial y Percepción, en la Universidad de Edinburgo, invitó a Levy, ya un fuerte maestro internacional, amén de ser un estudiante graduado en ciencias de la computación, a la Conferencia sobre IA que se llevaría a cabo en Edinburgo. Levy jugó una partida amistosa con John McCarthy (el autor del lenguaje Lisp, ni más ni menos), la cual ganó el primero. McCarthy le dijo entonces a Levy que podía éste vencerlo siempre, pero que predecía que un programa de computadora le ganaría a Levy en los siguientes diez años. David entonces hizo su famosa apuesta, en la cual aseguraba no habría programa que le ganara en una serie de partidas con los tiempos de torneo. McCarthy aceptó la apuesta después de consultar  a Michie. Originalmente se apostaron 500 libras (250 por parte de McCarthy y otros 250 por parte de Michie), pero luego se duplicó cuando Seymour Papert (el creador del lenguaje Logo), del MIT y Ed Kozdorwicki (creador del programa COKO), se unieron a la apuesta.

David Levy eventualmente ganaría la apuesta en un match a seis partidas (en donde él tenía solamente que hacer 3 puntos, la mitad). Chess 4.7 no pudo contra el Maestro internacional, empatando una partida (la primera), y ganando una, en donde Levy indica, experimentó cuando la puntuación le favorecía 2.5 a 0.5, y en donde planteó la peligrosa defensa denominada como "gambito Letón". De hecho, la estrategia del maestro internacional fue "la de no hacer nada", y así logró ganar fácilmente el encuentro. Los involucrados en la apuesta pagaron un par de semanas después de concluido el match, a excepción de Kozdorwicki, quien le debe a David Levy 250 libras más los intereses compuestos desde el año 1978 (de hecho, en el 2007, en el Campeonato Mundial de Ajedrez llevado a cabo en la Ciudad de México), el propio Levy me confirmó que el autor de COKO no le había aún pagado el dinero que le debe.

Pero si hablo de esto es porque la apuesta de Levy fue más allá que un hecho entre particulares: movió a la comunidad de científicos y gente de computación a desarrollar técnicas y algoritmos para atacar el problema del ajedrez. Dicho de otra manera, esta decisión (la de trabajar basándose en querer ganarle la apuesta a Levy), cambió probablemente el rumbo de la investigación del ajedrez por computadora y para bien. Es curioso que una apuesta de menos de 2000 libras se haya convertido en un catalizador para la investigación más profunda del ajedrez computarizado. Me parece que Levy merece el crédito de empujar este desarrollo aunque probablemente lo hizo sin pensar en las consecuencias.  Esto es, una decisión cambio el derrotero de esta disciplina.

______
(*) La ilustración muestra al MI David Levy (ataviado con smoking), en una de sus partidas contra Chess 4.7, que se llevó a cabo en Toronto, Canadá, en el edificio de la Galería Nacional, a fines de agosto de 1978.

Sunday, August 17, 2014

¿Cuál es la mejor jugada, 1.e4 o 1.d4?


¿1. e4 o 1. d4?

Las dos jugadas más usadas en las partidas de ajedrez son las que se refieren al dominio del centro, a sacar las piezas rápidamente. De todas las jugadas de peones, 1.e4 o 1.d4 son las que más libertades otorgan a las otras piezas y de hecho, son las dos más usadas estadísticamente en la historia del ajedrez. pero... ¿cuál es mejor?

Para dar una posible respuesta -no definitiva- apelaré al artículo de Claude Shannon, el cual entre sus múltiples trabajo, en algún momento decidió incursionar sobre cómo debería programarse una computadora para poder jugar un ajedrez sensato, digamos que pudiese competir con los seres humanos, porque el escribir un programa que juegue simplemente al ajedrez, aunque juegue mal, no tiene ningún chiste.

Shannon escribió un artículo por los años cincuenta del siglo pasado, titulado "Programming a Computer for Playing Chess", en donde analiza a detalle lo que hay que hacer. Cabe decir que Shannon sí entendía bastante de ajedrez y tenía claras las ideas que quería plasmar en su eventual programa. Es importante decir que en ese entonces no se tenía acceso fácilmente a una computadora y además, ni siquiera existía el tema de la computadora personal. Pero debe quedar sin embargo algo claro: el artículo de Shannon es tan importante que prácticamente todos los programas actuales tienen muchas de las ideas que planteó el científico en su momento.

Sin ir a detalle sobre la idea de Shannon, propone éste una estrategia que le llamó tipo A, en donde a partir de una posición dada, se exploran todas las líneas de juego hasta una profundidad fija y se les asigna una puntuación al final de cada continuación. La puntuación  asignada a la posición se denomina hoy en día "función de evaluación" y es una medida de qué tan buena es una posición para el lado de quien le toca jugar. Para decidir esa puntuación, Shannon sugirió un número de factores que deben tomarse en cuenta:

  1.  Material: asignando a las piezas los valores tradicionales, Dama (D)=9, Torre (T)=5, Alfil (A)=3.5, Caballo (C)=3, Peón (P)=1 y Rey (R)=200 (no importa el valor del rey, porque si éste es eliminado se acabó la partida, lo que importa es que sea un valor mucho más grande que el de las demás piezas).
  2.  Formación de peones: castigo de 0.5 puntos por cada peón doblado (PD), aislado (PI) o atrasado (PB).
  3.  Movilidad: es deseable tener muchas jugadas disponibles para el jugador que le toca mover y pocas para el oponente. Shannon sugiere 0.1 puntos por cada jugada disponible (JD).

Basado en esto, la función de evaluación bien puede escribirse como:

f(posición) = 200 (R-R') + 9(D-D') + 5(T-T') + 3.5(A-A') + 3(C-C') + (P-P') - 0.5(PD-PD'+PI-PI'+PB-PB') + 0.1(JD-JD')

donde las piezas primales son las del enemigo. Así, un valor positivo significa que las blancas tienen ventaja, una valoración negativa implica que el negro tiene mejor posición.

Cabe decir que esta función elemental es bastante acertada en la mayoría de las posiciones que se dan en ajedrez, pero desde luego, hay tantas excepciones que hay que refinar mucho más dicha función. De hecho, esto es el secreto de los programas más fuertes y no se conoce en la mayoría de los programas comerciales.

Pero si tomamos el criterio establecido por Shannon, podemos decidir si 1.e4 es mejor que 1.d4. Después de 1.e4, las blancas tienen 30 movimientos posibles (contando incluso los del rey). Después de 1.d4 las blancas tienen una valoraciín menor en la función descrita por Shannon.

Tuesday, June 10, 2014

El ajedrez computarizado


El desarrollo del ajedrez por computadora tiene unos 50 años aproximadamente. Y en ese tiempo la cosas han cambiado notablemente con los años. Hasta mediados de los años ochenta del siglo pasado, las máquinas que jugaban al ajedrez francamente no podían competir contra jugadores de primera fuerza, ya no digamos grandes maestros. Pero como los propios programadores decían: "hoy se ríen de nosotros. Mañana van a aprender de nosotros, ya verán". Y sin duda, desde 1997, cuando Kasparov enfrentó a Deep Blue fue claro que las cosas habían cambiado. Si a esto le agregamos la disminución en el costo del hardware y el aumento en el poder de cómputo, la ecuación parece completarse. Hoy en día los programas son francamente notables y posiblemente puedan vencer al 99.99% de los jugadores en el planeta. De hecho, por eso ya no hay encuentros hombre vs máquinas. Ya no parece tener sentido.

Pero hace unos años, había muchos problemas que resolver. Por ejemplo, tómese la siguiente posición:



Juegan blancas y ganan

Aquí, cualquier jugador avezado hallaría 1. Dxf6 gxf6 2. a4 y el peón no puede ser alcanzado por el rival. Un jugador que conozca la teoría básica de los finales de peones sabría que no requiere calcular la secuencia hasta la coronación. Basta con saber que después de 2. a4, el negro no puede alcanzar al peón pues el rey negro está fuera del cuadrado del mismo, el cual se forma trazando una diagonal desde donde está el peón hasta la última fila y creando así un cuadrado.

Cuando las computadoras no tenían el poder actual, no se podía pensar en cómo resolver este problema que es bastante sencillo para un jugador de ajedrez. Había que calcular muchas jugadas y además, el gran maestro ni siquiera hacía ese cálculo. Bastaba con saber la regla del cuadrado del peón para entender que el rey negro no alcanza al peón que se convertirá en dama muy pronto.

¿Cómo solucionaron el problema? Muy fácil: en lugar de buscar un esquema en donde el programa analizara el final tratando de entender la esencia del final de peones, lo que hicieron fue simplemente hacer crecer el árbol de posibles jugadas, a una profundidad de 12 plies, (6 jugadas, aproximadamente). Siguiendo este enfoque, el problema se resuelve a fuerza bruta. El gran maestro podría resolverlo también a fuerza bruta pero con la regla del cuadrado del peón, toma un atajo y lo resuelve casi sin pensar.

Aparentemente la máquina no requiere de atajos. La demostración de fuerza bruta es lo que parece darle la ventaja en nivel de juego a la computadora, al menos con el esquema actual.