Desafío Schroder-De Koning

Otras participaciones no clasificadas

Moderador: Luis a

Responder
Avatar de Usuario
Javier Ros
Avanzado
Avanzado
Mensajes: 588
Registrado: 20 Ene 2013 15:28
Ubicación: Sevilla

Desafío Schroder-De Koning

Mensaje por Javier Ros » 24 Ene 2013 17:52

Y llega la hora del maestro Schroder, el rebelde de Deventer, que con su programa Gideon rodando sobre procesador ARM, fue capaz de frenar a Richard Lang a partir del Mundial de micros de Vancouver 1991 y de ganar el Mundial absoluto de Madrid 1992.

Una de las diferencias que hay entre Schroder con Lang, De Koning y Kittinger, es que éstos han dejado de trabajar en sus programas hace tiempo, mientras que Schroder continúa trabajando y mejorando su programa Prodeo. Este programa al igual que otras utilidades muy interesantes las ha puesto generosamente a disposición de todos en su página web:

http://www.top-5000.nl/match.htm

Donde además hay un montón de experimentos interesantes e información detallada sobre Prodeo, programación en ajedrez y métodos para perfeccionar un programa de ajedrez.

La primera pregunta que surge después de los desafíos anteriores, ver

http://meca.mundoforo.com/viewtopic.php?t=1658

http://meca.mundoforo.com/viewtopic.php?t=1665

http://meca.mundoforo.com/viewtopic.php?t=1668

es por qué no he realizado el esperado duelo Lang-Schroder antes que éste. La respuesta es porque de momento no he conseguido hacerlo de forma justa, lo explico. Este duelo se tiene que celebrar en entorno Genius porque es el único donde funciona Chess Genius, además tiene que correr en un sistema operativo de 32 bits para que funcione el motor Genius. Usando el truco publicado en la siguiente página

http://www.geocities.ws/delbg/genius-engines-tutorial

he conseguido que Gideon 93, Rebel Century y Prodeo 1.8 corran en entorno Genius pero las tres tienen un problema, al programar partidas a 5 minutos pierden por tiempo de forma bastante frecuente. He consultado a Ed Schroder este problema en el foro de Talkchess, ver

http://talkchess.com/forum/viewtopic.php?t=46628

y ha contestado que esto es un problema conocido y que simplemente juegue con incremento de 1 segundo por jugada, por ejemplo 4 minutos por partida + 1 segundo por jugada. Le contesto que en el entorno Genius no hay reloj de Fischer y que esto no es posible. Me contesta que juegue con tiempo medio por jugada, por ejemplo 3 segundos por jugada. Lo intento y juego varias partidas con Chess Genius usando este método. Aparentemente todo va bien, pero da la impresión de que el programa de Schroder emplea más tiempo de reflexión que el de Lang. Para comprobar esto de manera fiable, miro el tiempo total empleado por ambos programas usando el Administrador de tareas de Windows. El resultado es que en la prueba realizada el programa de Schroder ha empleado 40 minutos mientras que el de Lang ha empleado 10 minutos, lo que no es admisible si queremos medir de forma justa la fuerza de ambos programas. Por tanto, este duelo queda aplazado hasta que a alguien se le ocurra como hacerlo de forma justa.

Por tanto el duelo será Schroder-De Koning. El enfrentamiento ha tenido lugar en el entorno Arena debido que que posee la gran ventaja de realizar varias partidas simultáneas si se dispone de un procesador con varios núcleos. La idea es del maestro Schroder y está explicada en su página web.

El procedimiento es el siguiente. Supongamos que se trata de un procesador de 4 núcleos como mi Q6600. Se instala una sola vez Arena y se instala el motor correspondiente, digamos Rebel Century, en cuatro directorios diferentes: RC1, RC2, RC3 y RC4. Lo mismo con el programa rival, en este caso The King 3.12 en TK1, TK2, TK3 y TK4.

Un dato importante si se quiere utilizar el mismo libro de aperturas para todos los motores es que hay que desactivar el libro particular de cada motor (si lo tiene). Por ejemplo para que los motores de Schroder hay que editar el archivo wb2uci.eng del directorio de instalación y buscar la línea

; InitString = BookOff/n

quitando el ; se desactiva el libro interno:

InitString = BookOff/n

además para cada motor hay que especificar en la pestaña Books de cada engine el libro común a utilizar, en nuestro caso el Perfect2012 de Sedat Canbaz.

https://sites.google.com/site/computers ... 2012-books

También es conveniente editar el archivo general de configuración de motores de Arena:

ArenaENG.cfg

y poner los siguientes valores de los parámetros para los motores de Schroder

Opening Book=mainbook
EOC database=prodeo
EOC Usuage=none

mientras que para especificar que los motores que utilizan varios núcleos del procesador sólo usen uno, hay que poner

Threads=1

para que no piense en el tiempo del contrario se pone

Ponder=false

aunque realmente en entorno Arena es el propio Arena el que controla esto, es preferible que no haya órdenes contradictorias.
El poner las mismas hashtables a todos se hace en Arena aunque es bueno comprobar que en cada motor aparece

Hash=64

Otra cosa recomendable es al crear el torneo, en Opciones especificar Adjudicar partida perdida con -5.00 y Adjudicar tablas al llegar a 150 jugadas. Esto último es importante con los programas de Schroder, pues en su página web avisa que Prodeo y compañia se pueden volver locos al pasar las 160 jugadas.

Ahora se ejecuta Arena y se programa el primer enfrentamiento. Si quiero jugar 100 partidas, programo 25 empezando The King con blancas e inicio el torneo TK1-RC1 grabando las partidas en el archivo TheKing312Century.PGN. Minimizo Arena que sigue corriendo y ejecuto un segundo programa Arena donde programo otras 25 partidas empezando Century con blancas y empiezo el torneo RC2-TK2 grabando las partidas en el mismo archivo TheKing312Century.PGN. Vuelvo a minimizar Arena que sigue corriendo y ejecuto un tercer programa Arena donde programo otras 25 partidas con blancas inicialmente para The King y empiezo el torneo TK3-RC3 grabando las partidas en el mismo archivo TheKing312Century.PGN. De nuevo minimizo Arena que sigue corriendo y ejecuto un cuarto y último programa Arena donde programo las últimas 25 partidas con blancas inicialmente para Century y empiezo el torneo RC4-TK4 grabando las partidas en el mismo archivo TheKing312Century.PGN. Después inicio el programa Match.exe descargado de la página de Schroder y monitorizo el total de las partidas The King- Century sin importar si proviene del torneo 1, 2, 3 ó 4. !!Increible¡¡

Con este procedimiento, se pueden jugar estas 100 partidas de 4 minutos + 1 segundo en menos de 4 horas, con el programa Match.exe indicando en todo momento el resultado global de los cuatro matches simultáneos y hasta el cálculo de ELO.

Es conveniente siempre presenciar varias partidas y comprobar que los motores se salen del libro a la vez y que cada uno usa un solo núcleo del procesador. Para esto se pulsa Control-Alt-Suprimir iniciando el Administrador de tareas y seleccionando la pestaña procesos, comprobando que cada programa usa el 25% de la CPU. También es bueno verificar que todos los motores usan una cantidad similar de tiempo cuando estemos cerca de terminar la sesión de partidas. Para ello, nos vamos de nuevo al Administrador de tareas y seleccionamos Ver-> Seleccionar columnas y marcamos tiempo de CPU, aceptando después. En la pestaña procesos podemos ver el total de tiempo empleado por cada motor.

Si hubiera que interrumpir una de estas sesiones de juego, es suficiente con darle al botón Last game del menú Tournament, con lo que se termina y se salva la partida en juego y el torneo se para. Para continuarlo, sólo hay que cargar el archivo *.at del disco y darle a Resume. Por supuesto, esto hay que hacerlo con los cuatro torneos.

Dada la gran cantidad de motores disponibles de Schroder y De Koning, he procurado hacer emparejamientos entre programas cercanos en el tiempo, aunque también he añadido los duelos entre las primeras y últimas versiones disponibles.

Después de eliminar las partidas duplicadas con Chessbase, los resultados son los siguientes:

Duelo entre las primeras versiones disponibles

The King 3.12d (2000)-Rebel Gideon 3.1(1993)

The King 3.12d +48/=27/-22 63.40% 61.5/97 +96 Elo Margen error ±56
Rebel Gideon 3.1 +22/=27/-48 36.60% 35.5/97 -96 Elo

https://sites.google.com/site/unoallavo ... ects=0&d=1

Duelo entre versiones contemporáneas

The King 3.12d (2000)-Rebel Century (2000)

Rebel Century +35/=31/-34 50.50% 50.5/100 +3 Elo Margen error ±56
The King 3.12d +34/=31/-35 49.50% 49.5/100 -3 Elo

https://sites.google.com/site/unoallavo ... ects=0&d=1

The King 3.33 (2004) -Prodeo 1.0 (2004)

The King 3.33 +49/=31/-40 53.75% 64.5/120 +25 Elo Margen error ±51
Prodeo 1.0 +40/=31/-49 46.25% 55.5/120 -25 Elo

https://sites.google.com/site/unoallavo ... ects=0&d=1

The King 3.50 (2007) -Prodeo 1.5 (2007)

The King 3.50 -175 +41/=23/-34 53.57% 52.5/98 +24 Elo Margen error ±56
Prodeo 1.5 +175 +34/=23/-41 46.43% 45.5/98 -24 Elo

https://sites.google.com/site/unoallavo ... ects=0&d=1

Duelo entre las últimas versiones disponibles

Prodeo 1.82 (2012)-The King 3.50 (2007)

Prodeo1.82 +34/-32/=33 51.01% 50.5/99 +6 Elo Margen error ±56
TheKing3.50 +32/-34/=33 48.99% 48.5/99 -6 Elo

https://sites.google.com/site/unoallavo ... ects=0&d=1


Conclusiones

Tengo que decir que hasta estos desafíos entre programadores publicados en el antiguo foro y aquí, no he sido nunca partidario de estas sesiones masivas de partidas. Dado que es imposible analizar ni siquiera reproducir este volumen de partidas, siempre me ha parecido poco interesante este tipo de tests y he preferido el análisis cualitativo de pocas partidas.
Sin embargo, ha sido la curiosidad por ver el enfrentamiento entre programadores de micros dedicados en condiciones de igualdad de hardware y libro de aperturas lo que me ha movido. También la automatización del proceso nos permite jugar un gran número de partidas casi imposible de hacer manualmente con micros y así apreciar mejor las diferencias de fuerza.

Como conclusión general de estos duelos es que hay bastante igualdad entre estos dos programadores, con una ligera superioridad de De Koning que con la última versión de Prodeo ha desaparecido.

En los enlaces anteriores están todas las partidas, aquí presento una muestra de lo duro del enfrentamiento, donde The King 3.50 tuvo ventaja de 1.72 peones y que sin embargo acabó ganando Prodeo 1.5.

Última edición por Javier Ros el 25 Ene 2013 19:15, editado 3 veces en total.

Avatar de Usuario
berger
Moderador del foro
Moderador del foro
Mensajes: 1321
Registrado: 12 Ene 2013 23:00
Ubicación: Barcelona (CATALUNYA)
Contactar:

Re: Desafío Schroder-De Koning

Mensaje por berger » 24 Ene 2013 21:27

Javier, un trabajo muy interesante. Gracias por compartirlo aquí.

Creo que pocas personas aprovecharán todos los núcleos de su procesador como tú haces. La pobrecita CPU estará pensando... dame un respiro! :beg:

Saludos,
Berger
Moderador del foro

Avatar de Usuario
Javier Ros
Avanzado
Avanzado
Mensajes: 588
Registrado: 20 Ene 2013 15:28
Ubicación: Sevilla

Re: Desafío Schroder-De Koning

Mensaje por Javier Ros » 25 Ene 2013 19:24

Pues sí Berger, casi siempre estoy usando todos los nucleos de mis procesadores, ademas el Q6600 de 2.4 Ghz. nominal lo tengo overclockeado a 2.8 sin subir voltajes y va como un reloj. No se calienta nada, sin embargo tengo un pentium D que a velocidad nominal de 3.4Ghz es una auténtica estufa.

Por cierto, he añadido a los duelos el cálculo de Elo y para 100 partidas el margen de error es de ±56 puntos Elo. ¡Y eso que 100 partidas parecen muchas!

Avatar de Usuario
Oliver
Senior
Senior
Mensajes: 88
Registrado: 24 Ene 2013 07:44

Re: Desafío Schroder-De Koning

Mensaje por Oliver » 25 Ene 2013 22:12

Javier Ros escribió:Pues sí Berger, casi siempre estoy usando todos los nucleos de mis procesadores, ademas el Q6600 de 2.4 Ghz. nominal lo tengo overclockeado a 2.8 sin subir voltajes y va como un reloj. No se calienta nada, sin embargo tengo un pentium D que a velocidad nominal de 3.4Ghz es una auténtica estufa.

Por cierto, he añadido a los duelos el cálculo de Elo y para 100 partidas el margen de error es de ±56 puntos Elo. ¡Y eso que 100 partidas parecen muchas!
Hola Javier, si me dices el modelo exacto de pentium D y placa base te puedo decir si le puedes bajar unos cuantos watios , mas de 20 tal vez tocando la bios...


Pues nada mas, un saludo!

Oliver.

Responder