Monday, September 26, 2011

Codificación de conocimiento en ajedrez

En mi búsqueda por tener algo parecido a un lenguaje que describa posiciones e información de ajedrez, he hallado algunos interesantes esfuerzos. Uno de ellos es de Christian "Chrilly" Donninger, el autor del programa Nimzo y además, de Hydra, un monstruo de 32 procesadores que no ha perdido una sola partida oficial contra jugadores humanos. Información sobre este proyecto extraordinario (lamentablemente descontinuado), puede verse aquí.

Donninger escribió todo un lenguaje de programación para dotar a su programa "Nimzo", con conocimiento posicional. Dicho lenguaje se llama Che (hay rumores de una comunidad que le ha agregado funcionalidad y que ahora se llama por ello "Che++") y pretende añadir al motor de juego de Nimzo con conocimiento posicional ajedrecístico codificado.

Por ejemplo, se sabe que en el sistema Colle, la estructura de peones blancos en c3, d4, e3, con el afil blanco en d3, contra los peones negros en c5 y d5 (véase diagrama),


Las negras no deben jugar c4, porque fija la estructura y el rompimiento en e4 (que es uno de los motivos del sistema Colle), es entonces más fuerte. La jugada c4 del negro fue típica por algún tiempo entre los programas de computadora, porque los "engines" de ajedrez suponían que esta jugada limitaba la acción del alfil de d3, pero la experiencia entre grandes maestros ha calificado como mala esa jugada.

Donninger describe su lenguaje Che en un interesante artículo que apareció en la revista especializada en ajedrez por computadora (ICCA) y que puede ser consultado aquí (me tomé la libertad de escanearlo Yo compré dicha revista por el artículo y por lo complicado y difícil de acceder a esta información, la puse disponible a los interesados en el enlace mencionado). Donninger ha hecho un trabajo notable con Che. Su sistema está básicamente orientado como un intérprete de Forth y a decir del autor, cualquiera -con conocimientos del elemental lenguaje Basic- puede aprender a alimentar información ajedrecística en Che. En las referencias de Donninger sobre su artículo, menciona la tesis doctoral sobre un programa para dar consejos sobre posiciones de ajedrez. Hay un artículo que habla de eso, que puede leerse aquí. Se llama Chunking for Experience y realmente habla del mismo problema que estoy tratando de resolver: el de tener una manera de describir vía un lenguaje, las posiciones de ajedrez.

Por su parte, Armando Estrada, buen amigo virtual de este blog, me dio la referencia: "Chess skill in Man and Machine" Editado por Peter W. Frey que explica este tipo de representación. capitulo 3 (paginas 54 a 59). Se publicó en 1977. Sin embargo, de lo que habla Armando es de la representación vía bitboards y no es exactamente lo que ando buscando. Este interesante libro de Peter Frey puede obtenerse aquí.


Che puede conseguirse en el programa comercial Nimzo 8, que vendía hace tiempo Chessbase. en él Donninger menciona que explica cómo usarlo y añadir ese conocimiento a Oracle, el sistema de juego que usa Nimzo 8.


Tengo más información al respecto. A quien le interese, escríbame a morsa@la-morsa.com

No comments: