Академический Документы
Профессиональный Документы
Культура Документы
INFORMÁTICO
(1ª EDICIÓN)
planton@ctv.es
1
El revuelo que se ha formado en el mundo del Ajedrez informático con el
escándalo que ha supuesto el “caso Rybka” es para mí solamente la punta del
iceberg de una tomadura de pelo (un timo, porque hay dinero en juego) de los que
llamamos programadores y de las asociaciones que los amparan.
Llegamos a nuestros días, comienzos del siglo XXI, un nuevo punto de inflexión
se está produciendo: lo que otrora dio en llamarse cibernética se ha transformado
en informática y nos ha provisto de la IA (inteligencia artificial).
Es indudable que con Robert Houdart (y con los demás programadores que
pugnan con él por conseguir programas de Ajedrez que empiecen a tener una
“comprensión” del juego) casi hemos alcanzado ese nuevo punto de inflexión en la
Historia del Ajedrez.
2
Recordemos que, por definición, un motor de Ajedrez es un programa
informático que debe cumplir básicamente tres funciones:
Por otra parte, tenemos que es posible hacer que los motoresde Ajedrez se
enfrenten comenzando con posiciones del Ajedrez 960, el Fischer Random Chess.
Esto anula automáticamente todas las bases de aperturas y pone a trabajar a los
motores desde cero, mostrando su verdadera fuerza. Así pues, teniendo en cuenta
que la entabladura (nuestra clásica posición de salida) es una de las 960 posiciones
del Random Chess, ¿por qué hemos de aplicar con ésta lo que no hacemos con las
otras 959 posiciones?
Atrás quedaron los primeros programas que jugaban con corrección el final de
C+A vs R y también el de D vs T sin usar tablas de finales. ¡Qué programadores!
¡Qué algoritmos!
También comprenderá el lector que, durante años, las casas comerciales (y los
programadores por convenio) han estado maquillando la cojera de los programas:
las enormes lagunas en los comienzos de las partidas se han paliado generando las
mencionadas bases de aperturas, que comenzaron siendo desastrosas y ahora ya
están más afinadas pero en general no poseen jugadas generadas por el ordenador
sino por los humanos; los calamitosos finales que juegan todavía los programas
han sido evitados acudiendo a las tablas de Nalimov con 5 piezas, 6 piezas, se
están preparando las de 7 piezas… ¿tienen ansia de llegar a las 32 piezas? Por lo
tanto, un programa que juega con bases de datos y tablas de finales está jugando
una partida impura, híbrida, espuria, no es realmente artificial. Eso no es
programar para que una máquina juegue al Ajedrez.
3
implementaron en las calculadoras. ¿Se imagina el lector que ese algoritmo, o el de
la raíz cuadrada, tuviera que acudir a bases de datos o tablas porque no es capaz
de realizar algunos cálculos? Creo que devolveríamos la calculadora si
descubriéramos el engaño. Básicamente es como cuando los estudiantes acuden a
examen con chuletas: hay trampa. Esto me recuerda al capitán Kirk frente a la
prueba del Kobayashi Maru.
Naturalmente, en la carrera por crear programas más correctos era más fácil
acudir a los subterfugios que comento que conseguir que los motores fuesen más
resolutivos. Ahora bien, cuando los programas se quedan desnudos, despojados de
los disfraces de comienzo y final, todo cambia terriblemente y las diferencias se
tornan abismales.
4
lo he hecho para que el lector comprenda la eficacia de los tests que aquí se
presentan y las aseveraciones que aquí se vierten.
Destaco que los resultados de los motores dependen mucho de las plataformas
en las que se hacen trabajar. La máquina que se ha empleado para las pruebas usa
un microprocesador de 2.2 GHz con 768 Mbs de memoria RAM, unas características
medias. Bajo tabletas y dispositivos portátiles modernos con Android y con placas
multiprocesador los resultados mejoran muchísimo, pero el ajedrecista medio no
suele disponer de éstos.
Una posición para los escépticos, sin duda la "pièce de résistance" de las
posiciones que he seleccionado, una de las piedras de toque que desenmascaran a
los motores.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
++
!
"
++
+
+#
$+
+
+%+
&
'()*+,-./0
La maniobra de rey que se realiza aquí es mucho más corta que en el test 2,
sólo se requieren 17 jugadas para dar mate. Ningún programa (incluido los que
trabajan en plataformas de alta gama) soluciona esta posición correctamente,
todos se dedican a jugar para coronar e ignoran la solución correcta, que es mucho
más corta que la que realizan.
La solución es: 1.Re2 c4 (obligada, para que no te den antes el mate final)
2.Rf1 Ae3 3.Rg2 Ab6 4.Rg3 Af2+ 5.Rg4 Ae3 6.Rh5 Ab6 7.Rg6 Aa5 8.Rf7
Ab6 9.Re7 Ae3 10.Rd7 Af2 11.Rc6 Ae3 12.Rb5 Ad2 13.Rxc4 Ae3 14.Rd3
Ad2 15.f4+ Axf4 16.Cf8 Ad2 17.Cg6#.
Como anécdota indicar que tanto Deep Rybka 4.1 como Zappa México II
anuncian mate en 24 jugando 2.Cxd4 pero son incapaces de ver el mate más corto
en 17 con 2.Rf1.
5
Posición 2:
+
+
+
+
+
+
++
++
+
+
+
+++
!
"
+
+#
$+
+
+%+
&
'()*+,-./0
Las anécdotas con este problema fueron: que Naum 4 anunció el mate pero fue
incapaz de darlo y que Protector 1.4.0 vio la maniobra ganadora pero no fue capaz
de ganar ¡porque perdió por tiempo! (un increíble fallo de programación que
debería ser tenido en cuenta por los programadores, que al decidir que sus motores
abandonen en posiciones desventajosas desprecian puntos escondidos por fallos
[bugs] de este tipo).
Tercera posición:
+
+
+
+
+
+
+
+
+
+
+
+
+
%+
+
+
+
+
+
+
+
++
!
"
+
+12#
$+
+
+3&
'()*+,-./0
6
Se trata del famoso problema compuesto por Gurgenidze y Mitrofanov con una
maniobra muy corta para una máquina pero extraordinariamente difícil para todos
los seres pensantes. Veamos: 1.Tb1!!! (sólo un grupo selecto de humanos y de
motores encuentran esta superjugada) 1…h4 2.Rc6!!! (nunca una maniobra de
reculación fue tan difícil) 2…h3 3.Rb7!! c4 4.Ra8!! c3 5.bxc3 (y el negro ya está
en zuzgwang) 5…Db8+ 6.Txb8 Ac5 7.Th8, el negro está claramente perdido.
Como se aprecia, muy pocas jugadas en comparación de las 50 que se precisaban
en el segundo test. Entonces, queda claro que muchos motores fallan en táctica.
Cuarta posición, uno de los mates más extraordinarios de todos los tiempos:
+
+
+
+
+
+
+
+
+
+
+
+
+43
%
+
++
45+6++
!
"
+
+
+#
$
+
+
+
&
'()*+,-./0
Solución de Weenink: 1.Ah7!! b4 2.Rf5 Rb1 3.Rf4+ Rb2 4.Re4 Rb1 5.Re3+
Rb2 6.Rd3 Rb1 7.Rd2+ Rb2 8.Ag8 Rb1 9.Tc1+ Rb2 10.Tc6!! Rb1 11.Ah7+
Rb2 12.Tg6 Rb1 13.Tg5+ Rb2 14.Tf5 Rb1 15.Tf4+ Rb2 16.Te4 Rb1 17.Te3+
Rb2 18.Td3 Rb1 19.Txb3#. ¡Extraordinario!
Quinta posición:
+
+
+
+
+
+5+
+
+
+
+
+
+
+
+
+
+
+
%
+
+
3!
"
+#
$+
+
+
+
&
'()*+,-./0
Gallischek nos legó esta posición muy desbalanceada de material. Juegan las
negras y pierden, pero se trata de conseguir que las blancas se encuentren con la
mayor cantidad de dificultades para alcanzar la victoria. Solución: 1...Tf3+ 2.e3!!
Txe3+ 3.c3!! Txc3+ 4.Ra2!! Ta3+ 5.Rb1 Ta1+ 6.Rc2 Tc1+ 7.Rd3 Tc3+
7
8.Re2 Te3+ 9.Rf1 Te1+ 10.Rg2 Tg1+ 11.Rf3 Txg3+ 12.Re2 Te3+ 13.Rd1
Te1+ 14.Rc2 Tc1+ 15.Rb3 Tc3+ 16.Ra2 Txc7 17.Th8+ Tc8 18.Txc8#. Este
problema mide la capacidad de lucha de los programas ante la derrota inminente y
evalúa a la vez la comprensión de las posibles tablas a causa del tema de “la torre
loca” (desperado, en inglés).
En este test los programas deben detectar que hay un mate y se les obliga a
ejecutarlo correctamente con blancas. Esto se hace así porque hay motores que
habiendo anunciado el mate luego son incapaces de darlo.
El programa Zappa México II, en este problema, se rinde con negras sin llegar a
efectuar jugada, o sea, ni se atreve a probar las oportunidades de tablas que
existen en esta posición. Un grave error de programación.
Sexta posición:
6
+
6
6
+
6
+
+
+
+
+
6
+
+
+
+
+
+
+
+
+
+
+
+
!
"
+
+
+
+#
$++%+
+
&
'()*+,-./0
Con esta fantasía de Troitzky evaluamos el funcionamiento de los motores a la
hora de localizar mates difíciles en posiciones infrecuentes. La despampanante
solución es: 1.Ace5!! a5 2.Aa1! Ra2 3.Rc2 a4 4.Abe5 a3 5.Rc3 Rxa1 6.Rb3+
Rb1 7.Aa1! a2 8.Rc3 Rxa1 9.Rc2#.
Por supuesto, siempre habrá quien argumente que se trata de una posición
artificiosa, imposible de alcanzar en una partida, y tendrá razón, pero de lo que se
trata es de verificar que la búsqueda del mate se realiza correctamente por parte
del motor. Hay que tener en cuenta que cuando los programas consultan las bases
de aperturas también están llegando a posiciones creadas por el hombre y no por
ellos mismos. Además, no hay excusas porque es sólo mate en 9.
Séptima posición:
+
+
+
+
+
+
+
+
+
++
+
+++
+
+
+
+
6
+
+
!
"
+
+
++#
$+
+
+
%
&
'()*+,-./0
8
Una auténtica “touchstone” junto con la posición que le sigue. El conocido final
de la partida Topalov-Shirov en el que el magnífico Alexei realizó la que fue
calificada como la mejor jugada de todos los tiempos. Jugando con las piezas
negras ningún programa encuentra la solución y casi se les oye suplicar por las
tablas de finales. Esta posición, con una solución corta, es una demostración clara
de que la última fase de la partida está muy lejos de ser comprendida aún por los
motores. Una vez más no se trata de profundidad de cálculo sino de entender el
plan. Recordemos aquí, para evitar malentendidos, que no se ha trabajado con
máquinas de alta gama para el testeo.
Solución: 1...Ah3!!! 2.gxh3 [2.Rf2 Rf5 3.Rf3 Axg2+ 4.Rxg2 Re4] 2...Rf5 3.Rf2
Re4 4.Axf6 d4 5.Ae7 Rd3 6.Ac5 Rc4 7.Ae7 Rb3 y alcanza c2 para promocionar.
Octava posición:
+
+
+
+
+
+
+
+
+++
+
6
++
+
+
%
+
+
!
"
+
+
+
+#
$+
+
+
+
&
'()*+,-./0
Solución: 1.a4 Ac6 2.a5 Ab7 3.a6 Aa8 4.Rg5 Rf7 5.f4 Ag2 6.Af2!! Af3
7.g4!! fxg4 [7...hxg4 8.h5 gxh5 9.Rxf5 Ac6 10.Rg5 Af3 11.Ag3 Rg7 12.Rxh5 Rf6
13.a8D Axa8 14.Rxg4] 8.f5 gxf5 9.Rxf5 Aa8 10.Rg5 Af3 11.Ag3 Re6 12.Rxh5
Rf6 13.a8D Axa8 14.Rxg4 y el final está ganado en ambas líneas.
Novena posición:
%
+
+
++
+
+
+6+
+
+
++
+
+
++
+
+
+
+
!
"
+
+
+
+#
$+
+
+
+
&
'()*+,-./0
Un final con muy pocas piezas pero que no entra en las tablas de finales porque
tiene 9 figuras. La idea de Kling y Horwitz es difícil pero casi todos los programas la
encuentran. 1.Rd7 g3 2.Ad5 f4 3.Af3 g2 4.Axg2 f3 5.Af1 f2 6.Rd8 Ra8 7.Axa6
9
Rb8 8.Ae2 Ra8 9.Af1 Rb8 10.Ag2 y la amenaza de mate en 2 obliga a entregar
el peón de f2 (10…f1D 11.Axf1 Ra8 12.a6 Rb8 13.a7+ Ra8 14.Aa6 bxa6
15.Rc8 a5 16.b7+ Rxa7 17.b8D+ Ra6 18.Db7#). Vemos que los programas
son capaces de calcular una maniobra ganadora que implica más de 10 jugadas
pero anteriormente han fallado con otras más cortas. Esto nos indica que algunas
posiciones todavía siguen sin ser bien evaluadas por los motores de juego.
Este problema tiene una característica muy interesante: siendo una maniobra
relativamente sencilla para los programas, algunos no son capaces de ver la
maniobra ganadora en modo infinito (es el caso de Houdini 1.5a y de Shredder) y
sin embargo la ejecutan a la perfección jugándola con límite de tiempo. Además, se
dio el caso contrario: Rybka 4 anunció un mate pero luego fue incapaz de ejecutarlo
porque su idea era falsa, pero para más bochorno acabó rindiéndose en una
posición de tablas.
10
Tabla de resultados obtenidos:
Test 2 Mate en 50
Test 4 Mate en 19
Test 9 Mate en 18
Test 6 Mate en 9
PROGRAMAS
Houdini 1.5a
Rybka 4
Leopard 07c
Stockfish 211 M
Critter 1.2
Toga II 2.0SE
Cyclone 3.4
Cyclone xTreme
Fire 22 xTreme
Firebird 1.0β
Sjeng 11.2
Shredder 4
Naum 4
Gull1.2
Protector 1.4.0
Zappa 11
Fritz 11
Zappa México II
Toga 312
Houdini 2.0
11
Seguidamente se muestran los resultados empíricos obtenidos. En primer lugar
tenemos los tiempos empleados en la resolución de la posición secreta de testeo
inicial con las piezas negras (la de las piezas blancas se ha omitido por ser menos
crítica y más fácil, aunque, como ya se dijo, Fritz 12 no la pasa). Recordemos que
la no resolución de estas dos posiciones secretas de testeo impide el pase a las
siguientes fases de testeos.
12
Tras esta primera clasificación se realizó una liga a doble vuelta entre 21 de los
programas, sin emplear libros de aperturas ni tablas de finales. No se acompaña la
tabla del torneo por ser demasiado abultada. La clasificación fue la siguiente:
NOTAS:
13
Tabla de resultados del encuentro “Mejores motores” contra “Selección de
programas que no han pasado los tests”:
Grapefruit 1.0 β
Puntos totales
Crafty 23.4
Alaric 707
Spark 1.0
Spike 1.4
Fruit 2.3
Houdini 1.5a 1-1 1-1 ½-1 0-1 1-1 ½-1 1-½ 1-1 1-1 15.5
Houdini 2.0 1-1 1-1 1-0 1-½ 1-1 1-½ 1-1 1-1 1-1 16
Ivanhoe 52a 1-1 1-1 ½-0 ½-0 1-1 ½-1 1-1 1-1 1-0 13.5
Houdini 1.03a 1-½ 1-1 1-1 ½-½ 1-1 1-1 1-½ 1-1 1-1 16
Critter 1.2 1-½ 1-1 0-1 ½-½ ½-1 1-1 ½-1 1-1 1-1 14.5
Stockfish 211 1-1 ½-1 ½-½ 1-1 1-1 1-½ ½-1 1-1 1-1 15.5
Deep Rybka 4.1 1-½ 1-½ ½-½ 0-1 1-1 1-½ 1-1 1-1 1-1 14.5
Komodo 203 1-1 1-½ 1-1 ½-0 1-1 1-0 1-1 1-1 1-1 15
Leopard 07c 1-1 1-1 0-½ ½-½ 1-½ ½-½ 1-1 1-½ 1-½ 13
Rybka 4 1-0 1-1 1-1 1-1 1-1 1-1 ½-1 1-1 1-1 16.5
Firebird 1.0β 1-½ 1-½ ½-½ 1-0 ½-½ ½-½ 1-1 1-1 ½-1 12.5
NOTAS:
14
CONCLUSIONES:
15