“Programas para jugar ajedrez: ¿rivales o aliados “Programas para jugar ajedrez: ¿rivales o aliados?” Cómo funcionan y cómo pueden ayudarnos a mejorar nuestro juego.
¿Cómo funciona básicamente un programa de ajedrez? 1. Introducción “Árbol de búsqueda”
Claude Shannon (1950): Programas tipo “A” y tipo “B” Programas tipo “A”: búsqueda de “fuerza bruta” Examina todas las posibles posiciones de cada rama del árbol de movimientos Pero: 3.35*10123 nodos 5.3 *10109 años para explorar todo el árbol Programas tipo “B”: búsqueda “selectiva” Examina sólo las mejores jugadas de cada posición Pero: Es muy difícil decidir qué movimientos son prometedores
2. Representación del tablero
3. Técnicas de búsqueda a. Método “mini-max”
b. Método “alfa-beta”
b. El “efecto horizonte” c. Posiciones estables y búsqueda “quiescente” d. Otras mejoras a la técnica de búsqueda 1) Profundización iterativa 2) Tablas de transposición 3) Poda por adelantado
3) Movilidad de las piezas (cantidad total de casillas dominadas) 4. La evaluación de los modos terminales (algunos parámetros elementales) 1) Material: P= 1, C= 3, A= 3, T= 5, D= 9 , R= ∞ (Propio → positivo, rival → negativo) 2) Estructura de peones (penalización por peones aislados, doblados, retrasados, o, en general, por estructuras deficientes de peones; bonificación de peones pasado) 3) Movilidad de las piezas (cantidad total de casillas dominadas) 4) Seguridad del rey: (penalización por cercanía peligrosa de piezas rivales, por pérdida enroque o rey en mala posición; con rey enrocado: por estructura deficiente de peones del enroque, etc.) 5) Situación de cada pieza en el tablero (ejemplo: tablas de piezas)
Tablas pieza/casilla (ejemplo: caballo)
5. Libros de aperturas 6. Bases de finales (“tablebases”)
La interfaz “Fritz” para jugar
La base de datos “ChessBase”
Algunos links recomendados: www.chessbase.com (Noticias sobre ajedrez y ajedrez por computadora) chessprogramming.wikispaces.com (Acerca del desarrollo de un programa para jugar ajedrez) www.tckerrigan.com/Chess/TSCP (Descarga de un código fuente en C de un programa de ajedrez, con explicaciones y pensado para el que quiere comenzar a desarrollar su propio programa) www.chessbin.com (Otro sitio con código fuente para desarrollar un programa de ajedrez, con consejos y varios links interesantes) www.top-5000.nl/chess.htm (Otro sitio excelente con la explicación de los secretos del ex programa comercial Rebel y muchos otros recursos). www.shredderchess.com/online-chess/online-databases/opening-database.html (Gran libro de aperturas online). www.shredderchess.com/online-chess/online-databases/endgame-database.html (Base de datos de finales online de hasta 6 piezas) www.chesslogik.com/Fire.htm (Descarga gratis del que es, tal vez, mejor programa del mundo!!)