Ajedrez e Informática

Gracias a la tecnología de los computadores, el ajedrez cuenta con herramientas muy valiosas para los amantes de este juego-ciencia.
La discusión acerca de si la máquina es superior o no al hombre, ya no es importante, fué finalmente resuelta (a favor de la máquina ... ). Lo importante hoy en día es contar con herramientas informáticas que ayuden al aprendizaje y desarrollo del juego del ajedrez.
Podemos hacer una sencilla clasificación de estas herramientas:

  • Interfases gráficas de usuario (GUI) : Permiten "dibujar" en la pantalla del computador el tablero de ajedrez y jugar partidas. Normalmente se incluyen algunos motores (engines).
  • Motores (engines): Son los programas que "juegan" al ajedrez. La mayoría requieren instalarse en las GUI.
  • Visores de partidas : Permiten analizar partidas de ajedrez. Algunos de ellos incluyen la posibilidad de análisis mediante uno o varios motores.
  • Jugar en la red : Existen programas que permiten jugar con otros jugadores en internet o en una red local. Muchas de las GUI incluyen esta funcionalidad.
  • Servidores : Podemos configurar un computador como servidor de juegos ya sea en red local o por internet.

Existen versiones comerciales (de pago) y versiones gratis de estas herramientas . Algunas aplicaciones gratis son tan buenas como las de pago, por lo tanto no tiene sentido "piratear" las versiones comerciales. Es evidente que estas últimas cuentan con ciertas ventajas sobre las versiones gratis. Si tomamos en cuenta además que los precios de las versiones comerciales son realmente asequibles, de nuevo, no tiene sentido tener copias "piratas".

Interfases Gráficas (GUI)
 Arena
Arena
 winboard
winboard
 kavetka
kavetka
 rebel
rebel (C)
 chessbase
chessbase/fritz (C)
 rybka
rybka (C)
 shredder
shredder (C)
Motores (Engines)
 Houdini
Houdini
 stockfish
stockfish
 komodo
komodo
 critter
critter
 crafty
crafty
 superchessengine
Repositorio de motores
 arasan
arasan
 Computer Chess wiki
Computer Chess wiki
Visores y otras utilidades
 scid
scid
 jin
jin
 Test Suites
Test Suites
Torneos de motores
 CCRL 40/40
CCRL 40/40
 WBEC Riddeekerk
WBEC Riddeekerk

Ajedrez Portatil

La existencia de dispositivos móviles cada vez más avanzados ha permitido el desarrollo de aplicaciones de ajedrez similares a las desarrolladas para los computadores personales.
En el caso de los teléfonos inteligentes, hay una gran variedad de aplicaciones disponibles , independientemente de la marca o sistema operativo de los mismos (iphone, blackberry, android, etc).
En el caso concreto de dispositivos del tipo Android podemos señalar las siguientes aplicaciones:

 Chess for Android
Chess
 scid
scid
 chess free
chess free
 droidfish
droidfish
 chess walk
chess walk
 chess for all
chess for all
 Shredder
Shredder (C)
Motores de ajedrez

Actualmente existe una gran cantidad de motores de ajedrez disponibles. Algunos de sus autores inclusive han liberado el programa fuente con el objeto de que otros puedan mejorarlos o tomarlos como base para nuevos desarrollos.
La gran mayoría de estos motores requieren de una interfase gráfica para ser funcionales. Actualmente existen dos protocolos de comunicación entre los motores y las GUI: UCI y xboard.
El más popular es UCI, ya que se creó con la idea de que fuese un estandard. Sin embargo los defensores del protocolo xboard sostienen que éste es superior a UCI.
En general las GUI incluyen la posibilidad de comunicación mediante ambos protocolos.

Que diferencias existen entre todos estos motores ?.
Lo primero que se desea es determinar la "fortaleza" de un motor. Para ello se mide el "elo" del motor. El procedimiento es similar al utilizado para los jugadores humanos, lo cual permite no sólo valorar al motor sino también "compararlo" con el desempeño de los jugadores humanos.
Adicionalmente, a los entendidos en la materia les interesa saber cuan "humano" es el motor, es decir si su juego se aproxima al de un humano. Para lograr esta "humanidad" se requiere que el algoritmo del motor se acerque lo mas posible a la forma de jugar de un humano, lo cual no es fácil de implementar.
Otro aspecto interesante es la capacidad del motor para resolver problemas de ajedrez. Para ello se han desarrollado "test suites" (stsxx.epd, arasan13.epd, wac.epd, etc.), que ponen a prueba la capacidad del motor para resolver dichos problemas.
Disponemos de varias formas para evaluar a un motor en el desempeño de estos tests :

  • Algunas GUI (Arena, ICE) tienen esta funcionalidad.
  • La utilidad Polyglot (su principal funcionalidad es permitir operar motores UCI en xboard) incluye la posibilidad de ejecutar estos tests (polyglot epd-test -epd arasan13.epd -max-time 5 > resultados.txt) .
  • Algunos motores incluyen instrucciones que permiten la ejecución de estos tests.
    • Crafty : En modo consola test arasan13.epd
    • Critter : En modo consola epdtest arasan13.epd

Con el objeto de "ayudar" a los motores en su juego, se han creado bases de datos de aperturas (books) y de finales de juego (tablebase o endgames). Es decir, el motor cuenta con un "libro de aperturas" para la fase inicial del juego y una base de datos de finales para la fase final del juego, en consecuencia sólo "piensa" durante la fase intermdedia de la partida
Los libros de aperturas se elaboran a partir de recopilación de partidas de ajedrez y las bases de datos de finales se "crean" a partir de anális de finales de partidas con varias piezas. Actualmente hay disponibles finales para seis piezas (varios gigas de información).