¡¡¡¡ Como ganar a Rybka....!!!!

Un foro especial para los amigos de lengua Hispana!

Moderator: Fernando

Post Reply
User avatar
IA
Member
Posts: 433
Joined: Wed Sep 10, 2008 1:12 pm
Location: Spain

¡¡¡¡ Como ganar a Rybka....!!!!

Post by IA »

Voy a intentar explicar mí punto de vista sobre como ganar no solo a Rybka sino a cualquier rival de silicio.

Primero hay que partir de 2 premisas , 1) que el ajedrez es infinito en posibilidades 2) que las computadoras de ajedrez tiene lagunas y agujeros por muy bien que jueguen , ahora hay que saber explotar esos agujeros para ganarlos, con estas 2 premisas partimos de la base de que ningún programa de ajedrez es imbatible , la siguiente pregunta es ¡ entonces como ganar a un rival muy fuerte!

En este punto hay 2 conceptos importantes a tener en cuenta , el primero es no solo conocernos a nosotros mismos "Hiarcs" , sino conocer a nuestro rival , si Hiarcs es fuerte en determinado tipo de posiciones hay que intentar que busque ese camino siempre que se pueda , si nuestro rival basa sú fuerza en la presión hay que evitarla a toda costa, luego explicare todo esto.

La maquina tiene que ser abierta para poder ajustarla en todo momento con múltiples parámetros , los parámetros son los márgenes de maniobra de nuestra computadora y sin ellos se convierte en una maquina atada de pies y manos , hay que darle la máxima movilidad posible en el menor tiempo posible , es decir poder cambiar la táctica de la maquina en cuestión de minutos y sobre la marcha.

Empezamos: el ajedrez se divide en 3 fases ( aperturas , medio juego y finales de partida ) como el tema es complejo yo siempre trato estos temas y asuntos dividiéndolos , cuando un problema nos abruma por su complejidad no hay que dejarse abatir por ello , en estos casos se va dividiendo el problema y se va analizando por partes y de este modo nos resultara más fácil de entender , esto se puede aplicar a todos los asuntos cotidianos de la vida , es decir que todos los problemas tienen su respuesta correspondiente , solo hay que saber encontrarlo y para ello hay que dividirlo tanta veces sea posible hasta que lo acabemos entendiendo.

Las aperturas son el comienzo , en este caso hay que dividir todas las aperturas y ver con que tipo de aperturas tanto con blancas como con negras se llega a posiciones favorables para nuestros intereses , es decir para que gane Hiarcs , también hay que analizar con que aperturas se siente más incomodo nuestro rival ,aquí seria interesante convertir en libro de aperturas en una especie de Engine , por ejemplo poder seleccionar posiciones abiertas , cerradas , irregulares , semiabiertas , incluso si se puede que el libro de aperturas sea inteligente con algún tipo de Heuristica para que sepa en todo momento seleccionar siempre el camino más fuerte para nuestra computadora , las aperturas son el 50% de la partida y si salimos mal ya estamos perdidos.

El medio juego consiste en planificar , si hemos salido bien de la apertura aquí no hay mayor problema , aun así seria interesante ver los puntos débiles de nuestro rival y atacarlos cuanto antes , por ejemplo si Rybka es fuerte con los peones y con el alfil , intentar eliminar los alfiles pronto o intentar ahogarlos posicionalmente , es decir intentar que la maquina caiga en su propia trampa y eliminar todos los puntos fuertes del rival , en el medio juego si la posición se pone mal seria interesante intentar juntar las piezas como hacia el ejercito romano con la posición de tortuga , concentrar las piezas y unidas ir todas directas a por el rival , de este modo se hace más fuerte nuestra posición , seria como una especie de muro , en el medio juego se podría aplicar el dicho de que “la unión hace la fuerza” la unión se refiere a conexión entre las piezas de ajedrez, el objetivo del medio juego es debilitar posicionalmnete a nuestro rival y intentar llevarlo a un final de partida perdedor para el y ganador para nosotros.


En el final de partida aparte de las base de datos de finales de partida intentar programar a Hiarcs por ejemplo las posiciones a las que se puede llegar desde la apertura , es decir que si elegimos 5 posiciones fuertes de aperturas para Hiarcs en blancas y en negras , intentar de alguna manera que Hiarcs tenga programado los finales a los que se puede llegar con esa apertura.

Bueno , no me quiero alargar más , esto es un ejemplo sencillo de algunas ideas que tengo al respecto , muchas gracias a todos , tengo muchas más pero no quiero aburrir a la gente.

Saludos ...........

PD : si alguien lo quiere traducir al ingles para que la gente que tenga curiosidad lo puede leeer se lo agradecería
User avatar
Dylan Sharp
Senior Member
Posts: 2431
Joined: Fri Aug 10, 2007 12:07 am

Post by Dylan Sharp »

Antes de traducir quiero saber si te refieres al "Ajedrez Centauro" en donde una persona usa un programa para ayudarle a vencer a otro, en este caso sería tú y Hiarcs contra Rybka.

Si es así, espero que sepas del torneo de Ajedrez estilo libre en donde llevan esta idea al extremo y dejan que todos los participantes humanos sean ayudados por computadoras para crear el ajedrez más fuerte en el menor tiempo posible. En este caso eres más fuerte cuando usas a Rybka para ayudarte, y cuando usas a varios programas dependiendo de la posición en el tablero.

Espero confirmación.
User avatar
IA
Member
Posts: 433
Joined: Wed Sep 10, 2008 1:12 pm
Location: Spain

Post by IA »

Hola Dylan , me refiero a enfrentamiento “maquina – maquina” como por ejemplo el ultimo enfrentamiento en Beijin 2008 por el campeonato del mundo de computadoras.

Gracias por todo Dylan y perdona las molestias...
User avatar
Dylan Sharp
Senior Member
Posts: 2431
Joined: Fri Aug 10, 2007 12:07 am

Post by Dylan Sharp »

No son molestias, gracias por el contexto, estoy traduciendo ahora.
pedrox
Member
Posts: 43
Joined: Wed Sep 26, 2007 7:53 am

Re: ¡¡¡¡ Como ganar a Rybka....!!!!

Post by pedrox »

IA wrote:Voy a intentar explicar mí punto de vista sobre como ganar no solo a Rybka sino a cualquier rival de silicio.

Primero hay que partir de 2 premisas , 1) que el ajedrez es infinito en posibilidades 2) que las computadoras de ajedrez tiene lagunas y agujeros por muy bien que jueguen , ahora hay que saber explotar esos agujeros para ganarlos, con estas 2 premisas partimos de la base de que ningún programa de ajedrez es imbatible , la siguiente pregunta es ¡ entonces como ganar a un rival muy fuerte!

En este punto hay 2 conceptos importantes a tener en cuenta , el primero es no solo conocernos a nosotros mismos "Hiarcs" , sino conocer a nuestro rival , si Hiarcs es fuerte en determinado tipo de posiciones hay que intentar que busque ese camino siempre que se pueda , si nuestro rival basa sú fuerza en la presión hay que evitarla a toda costa, luego explicare todo esto.

La maquina tiene que ser abierta para poder ajustarla en todo momento con múltiples parámetros , los parámetros son los márgenes de maniobra de nuestra computadora y sin ellos se convierte en una maquina atada de pies y manos , hay que darle la máxima movilidad posible en el menor tiempo posible , es decir poder cambiar la táctica de la maquina en cuestión de minutos y sobre la marcha.

Empezamos: el ajedrez se divide en 3 fases ( aperturas , medio juego y finales de partida ) como el tema es complejo yo siempre trato estos temas y asuntos dividiéndolos , cuando un problema nos abruma por su complejidad no hay que dejarse abatir por ello , en estos casos se va dividiendo el problema y se va analizando por partes y de este modo nos resultara más fácil de entender , esto se puede aplicar a todos los asuntos cotidianos de la vida , es decir que todos los problemas tienen su respuesta correspondiente , solo hay que saber encontrarlo y para ello hay que dividirlo tanta veces sea posible hasta que lo acabemos entendiendo.

Las aperturas son el comienzo , en este caso hay que dividir todas las aperturas y ver con que tipo de aperturas tanto con blancas como con negras se llega a posiciones favorables para nuestros intereses , es decir para que gane Hiarcs , también hay que analizar con que aperturas se siente más incomodo nuestro rival ,aquí seria interesante convertir en libro de aperturas en una especie de Engine , por ejemplo poder seleccionar posiciones abiertas , cerradas , irregulares , semiabiertas , incluso si se puede que el libro de aperturas sea inteligente con algún tipo de Heuristica para que sepa en todo momento seleccionar siempre el camino más fuerte para nuestra computadora , las aperturas son el 50% de la partida y si salimos mal ya estamos perdidos.

El medio juego consiste en planificar , si hemos salido bien de la apertura aquí no hay mayor problema , aun así seria interesante ver los puntos débiles de nuestro rival y atacarlos cuanto antes , por ejemplo si Rybka es fuerte con los peones y con el alfil , intentar eliminar los alfiles pronto o intentar ahogarlos posicionalmente , es decir intentar que la maquina caiga en su propia trampa y eliminar todos los puntos fuertes del rival , en el medio juego si la posición se pone mal seria interesante intentar juntar las piezas como hacia el ejercito romano con la posición de tortuga , concentrar las piezas y unidas ir todas directas a por el rival , de este modo se hace más fuerte nuestra posición , seria como una especie de muro , en el medio juego se podría aplicar el dicho de que “la unión hace la fuerza” la unión se refiere a conexión entre las piezas de ajedrez, el objetivo del medio juego es debilitar posicionalmnete a nuestro rival y intentar llevarlo a un final de partida perdedor para el y ganador para nosotros.


En el final de partida aparte de las base de datos de finales de partida intentar programar a Hiarcs por ejemplo las posiciones a las que se puede llegar desde la apertura , es decir que si elegimos 5 posiciones fuertes de aperturas para Hiarcs en blancas y en negras , intentar de alguna manera que Hiarcs tenga programado los finales a los que se puede llegar con esa apertura.

Bueno , no me quiero alargar más , esto es un ejemplo sencillo de algunas ideas que tengo al respecto , muchas gracias a todos , tengo muchas más pero no quiero aburrir a la gente.

Saludos ...........

PD : si alguien lo quiere traducir al ingles para que la gente que tenga curiosidad lo puede leeer se lo agradecería
Yo estoy de acuerdo contigo en algo, todos los programas tienen lagunas, desde los más sencillos hasta Rybka, esto es algo conocido por todo el mundo.

La mayoría de los programadores y testeadores para valorar un programa lo que hacemos es jugar un buen número de partidas contra otros programas, cada vez que hacemos una versión nueva, lanzamos unos test para saber si nuestra nueva versión hace más puntos o menos con los adversarios, si hace más puntos suponemos que nuestra versión juega mejor.

Lo que tu propones es no solo jugar esas partidas, sino analizar esas partidas, estudiar como juega tu motor y como juegan los adversariios, esto no es nada nuevo, habrá programadores que lo hagan y otros que no, yo lo he hecho en algunas ocasiones aunque es un trabajo enorme.

Pero además del trabajo, tu olvidas algo, la mayoría de los programadores y testeadores tenemos un ELO por debajo de los 2000 puntos, en mi caso mi ELO es unos 1840 puntos. Para un jugador de 1700 - 1900 puntos de ELO (yo creo que todo programador que quiera hacer un programa competitivo necesita al menos 1700 puntos de ELO o sino le tocará estudiar ajedrez) es muy complicado estudiar juegos con motores que tienen 1000 puntos más de ELO que ellos, en mi caso quizás unos 700.

El caso de Rybka es prácticamente único, su programador Vas es maestro internacional, por tanto su ELO será cercano a los 2400 puntos, y además cuenta con otro maestro internacional especialista en evaluaciones con ordenador, yo creo que Larry hizo muy bien su papel en la evaluación de Rybka 2 y Rybka 3.

En el foro de talkchess, Swami hizo un estudio de partidas de algunos motores, su ELO quizás esté entre los 2200-2300 puntos, pero es 400 puntos más que el mío, Swami indicaba al autor del programa donde fallaba su programa y que cosas hacía bien, lo encontré muy interesante, ya que muchas veces los autores no sabemos donde falla nuestro programa.

En resumen, es bueno analizar las partidas y no solo hacerlas jugar, aunque no todos los programadores y testeadores están capacitados para hacerlo.

Otra cosa, es malo también ajustar cambios a tu motor y probarlo solo con uno porque puedes llevarte una desagradable sorpresa, puedes hacer que Hiarcs juegue mejor contra Rybka pero quizás juegue peor con el resto de motores. Por ejemplo, tu puedes hacer una complicada evaluación de la seguridad del rey, tanto para tu programa como el adversario, esta evaluación puede ayudar mucho contra motores que no evaluen nada, tu verás como tu motor hace unos mates espectaculares, pero si la evaluación es demasiado compleja hará que tu programa sea más lento y otros programa aprovecharán eso quizás para conseguir ventaja material o posicional en aquellas posiciones donde los reyes estén seguros y no atacados. ¿Que es mejor? Posiblemente en este caso ni un GM pueda ayudarte y la forma de solucionarlo será jugando ciento de partidas contra un buen número de rivales.

Y otro punto que podemos ver según lo que he comentado anterior, muchos programadores se han hecho la pregunta ¿Que es mejor, evaluación o profundidad?, esto significa que si haces tu evaluación muy compleja, la búsqueda es más lenta. Tu programa no tiene que tener solo una buena evaluación, sino debe tener una buena profundidad, cojamos por ejemplo el programa TSCP cuyo ELO anda aproximadamente por 1900 puntos de ELO y pongamos la evaluación de Rybka 3 en TSCP. ¿Nosotros tendremos un programa top? No, posiblemente el nivel de TSCP suba como mucho 200 ó 300 puntos y se quede en los 2200, a pesar de su buena evaluación TSCP seguirá perdiendo combinaciones tácticas. Por eso tan importante como trabajar en la evaluación del programa, es trabajar en la búsqueda del programa.

Saludos,

Pedro
User avatar
IA
Member
Posts: 433
Joined: Wed Sep 10, 2008 1:12 pm
Location: Spain

Post by IA »

Hola Pedro , me parecen muy interesantes tus aportaciones , veo que eres programador , yo por desgracia no lo soy y tengo muchisimas ideas de cómo podría conseguir un fuerte programa , pero como te comentaba no soy programador de ajedrez.

Me imagino que no debe resultar nada fácil conseguir un programa fuerte y quizás en tú caso te guíes por buenos libros de ajedrez que traten todo tipo de temas que luego puedas incorporar a tú programa.

Los únicos maestros titulados que conozco en programación son los de Junior en concreto uno de ellos y el programador de Rybka , quizás haga falta tener un poco de asesoramiento de algún fuerte jugador que pruebe la maquina y vea donde falla por ejemplo jugando partidas rápidas , quizás en tú caso si conoces algún jugador con un cierto nivel te pueda decir los puntos mas débiles que ve en tú programa.

Si tú programa es libre me gustaría probarlo , si quieres ya me dirás donde lo puedo descargar , con respecto a el asunto del ajuste del motor en realidad lo que quería decir es que si un programa es fácil de ajustar sobre la marcha se convierte en un programa mucho más dinámico , es decir que puedes tener tú programa en fuerza optima pero ocasionalmente y en función del rival resulta muy interesante poder hacer ajustes rápidos de valoración , es decir conseguir un programa versátil , creo que la versatilidad es vital para conseguir un programa muy fuerte.

En tú caso Pedro y yo lo haría , seria ir a un curso para mejorar tú nivel de ajedrez , no solamente mejoraras el juego sino que tú programa se beneficiara de ello y además puedes aprovechar las clases para indicar posiciones de tú programa y donde falla , yo si fuera programador y quisiera que mí programa jugara mucho mejor intentaría hacer un curso de perfeccionamiento de ajedrez , esta es una solución a las limitaciones del Elo , aparte esta también el poder aplicar las ultimas técnicas en programación , pero es más importante que el programa incorpore unos buenos conocimientos básicos y sólidos y para eso el mejor camino es realizar un curso de ajedrez.

Con respecto a Hiarcs y Rybka decir que no me cabe duda que en breve Hiarcs acabara pasando a Rybka, hace ya más de 1 año que lo tiene entre las cuerdas y en esta ocasión se ha escapado por los pelos gracias a los 40 Cores (y a pesar de todo fue incapaz de ganar el torneo de Blitz) es decir un 500% mas potencia de proceso que Hiarcs y además no hay que olvidar que Rybka funciona a 64 Bits y Hiarcs de momento lo hace a 32 Bits , en cuando Hiarcs de el salto a los 64 Bits además de ajustarlo bien para los sistemas Multi procesador no me cabe la menor duda de que Rybka ya no estará es la situación actual.

En definitiva pienso que hay muchas formas de afrontar el asunto y creo que si Tú programa tiene una buena base de conocimientos de ajedrez seguro que jugara bien , también tienes la opción del auto-aprendizaje con los programas más fuertes para que tú programa memorice situaciones complejas en el tablero o finales de partida , creo que el mundo de la programación es muy complejo pero también es un mundo apasionante.

Espero charlar contigo en otra ocasión Pedro y me han parecido muy interesantes tús puntos de vista.

Un fuerte saludo Pedro.............
User avatar
Dylan Sharp
Senior Member
Posts: 2431
Joined: Fri Aug 10, 2007 12:07 am

Post by Dylan Sharp »

Respecto al 500% de potencia, esto en realidad no es así. Si a un programa que tiene 2000 ELO le doblas la potencia no estará jugando a 4000 ELO, si no a como 2070 ELO. Pero Rybka no estaba jugando con una computadora de 40 procesadores, si no en un cluster de 5 computadoras de 8 processadores cada uno. Así que medir la potencia no tiene sentido, lo que hay que medir es la diferencia en ELO.

Y ellos dicen que la diferencia de Rybka en una computadora como la de Hiarcs y Rybka en las 40 cores era de solo 100 ELO. Esto es, la fuerza óptima en una computadora como de 24 procesadores, pero estas aún no están a la venta (y las de 16 procesadores no tienen aún fuerza óptima.)

Pero estos torneos dependen mucho de la suerte, de que linea se juegue, cuando, y que oponentes te toquen, así que no dudo que Hiarcs pueda ganarle a Rybka en uno de esos, pero eso no significaría mucho estadisticamente, la verdadera batalla está en las listas de rating, como:

http://www.computerchess.org.uk/ccrl/4040/

Ellos juegan cientos de juegos que tienen significado estadistico y en donde es claro que Hiarcs primero tiene que vencer a Shredder, Zappa y Naum, y ya luego estando más fuerte puede empezar a preocuparse por Rybka.
User avatar
IA
Member
Posts: 433
Joined: Wed Sep 10, 2008 1:12 pm
Location: Spain

Post by IA »

Hola Dylan , ya se que sí aumentas la potencia no consigues doblar el Elo , es algo que lo tengo visto por ejemplo del pase de programas de 486 a Pentium , de Pentium a Pentium MMX , de Pentium MMX a K6...... normalmente si triplicas la potencia ( de calculo en Mips de potencia ) equivale a unos 70 Elos me imagino que deben haber usado este parámetro orientativo y en total la maquina de Vasik tiene aproximadamente 5 veces más potencia de calculo que la que tenia Hiarcs y eso daría un Elo de unos +100 aproximadamente.

La Pregunta que me hago en este caso es la siguiente , si Rybka supera por una gran diferencia en Elo a todos los programas de ajedrez en todas las listas ¿ por que ponerle una potencia tán abrumadora a Rybka? He visto en torneos anteriores que en igualdad de procesadores Hiarcs se lo come , creo que Vasik debe haber pensado que lo mejor es no correr riesgos y una manera de no tener miedo a perder es la de aumentar la potencia de calculo , pero por otro lado y desde el punto de vista psicológico denota que el programador Vasik tiene miedo a perder y el miedo surge de la inseguridad cuando algo no funciona según lo previsto , así que eso indica que de ahora en adelante no bajara de 40 Cores sino todo lo contrario lo subirá si puede al maximo.

Estoy de acuerdo que el resultado también depende de la suerte ya que los torneos por el campeonato del mundo son muy pequeños en partidas , pero este tipo de campeonatos deben de ser donde más se atragante Rybka ya que no le dá tiempo a desplegar sú fuerza , si suponemos que es el programa que más Elo tiene , si es asi , entonces un programa con mucho Elo funciona mejor en torneos largos con más partidas, por eso creo que sí Hiarcs optimiza el uso de más Cores las diferencias con Rybka quedarían anuladas.

Cuando un programa supera los +2700 Elos la verdad es que ya dá lo mismo con el programa que juegues , en este caso prima el estilo de juego y las opciones del programa “por eso te comente lo del estilo “anti-humano” este es el motivo por el que uso Hiarcs , por sú estilo tan particular , si me dejara influenciar por las listas Elo me tendría que comprar el programa Rybka , pero disfruto más jugando con el estilo de juego de Hiarcs que con la apisonadora de ajedrez Rybka , es más , llegados a este punto con los programas libres que hay hoy en día con más de +2800 elos ¡para que me quiero comprar Hiarcs! En mi caso por 2 razones , una por la fuerza de juego y por el estilo de juego y otra por el libro de aperturas optimizado , si Mark le cambiara el estilo de juego a Hiarcs y tuviera mucho más Elo y le quitara el libro de aperturas como hace Rybka 3 , entonces ¡ para que me iba a comprar Hiarcs! En este caso me compraría Rybka, por este motivo a nivel particular las listas no me dicen mucho , estan muy bien pero no me guío por las lista Elo cuando compro un programa de ajedrez.

Saludos Dylan.........
pedrox
Member
Posts: 43
Joined: Wed Sep 26, 2007 7:53 am

Post by pedrox »

IA wrote:Hola Pedro , me parecen muy interesantes tus aportaciones , veo que eres programador , yo por desgracia no lo soy y tengo muchisimas ideas de cómo podría conseguir un fuerte programa , pero como te comentaba no soy programador de ajedrez.

Me imagino que no debe resultar nada fácil conseguir un programa fuerte y quizás en tú caso te guíes por buenos libros de ajedrez que traten todo tipo de temas que luego puedas incorporar a tú programa.

Los únicos maestros titulados que conozco en programación son los de Junior en concreto uno de ellos y el programador de Rybka , quizás haga falta tener un poco de asesoramiento de algún fuerte jugador que pruebe la maquina y vea donde falla por ejemplo jugando partidas rápidas , quizás en tú caso si conoces algún jugador con un cierto nivel te pueda decir los puntos mas débiles que ve en tú programa.

Si tú programa es libre me gustaría probarlo , si quieres ya me dirás donde lo puedo descargar , con respecto a el asunto del ajuste del motor en realidad lo que quería decir es que si un programa es fácil de ajustar sobre la marcha se convierte en un programa mucho más dinámico , es decir que puedes tener tú programa en fuerza optima pero ocasionalmente y en función del rival resulta muy interesante poder hacer ajustes rápidos de valoración , es decir conseguir un programa versátil , creo que la versatilidad es vital para conseguir un programa muy fuerte.

En tú caso Pedro y yo lo haría , seria ir a un curso para mejorar tú nivel de ajedrez , no solamente mejoraras el juego sino que tú programa se beneficiara de ello y además puedes aprovechar las clases para indicar posiciones de tú programa y donde falla , yo si fuera programador y quisiera que mí programa jugara mucho mejor intentaría hacer un curso de perfeccionamiento de ajedrez , esta es una solución a las limitaciones del Elo , aparte esta también el poder aplicar las ultimas técnicas en programación , pero es más importante que el programa incorpore unos buenos conocimientos básicos y sólidos y para eso el mejor camino es realizar un curso de ajedrez.

Con respecto a Hiarcs y Rybka decir que no me cabe duda que en breve Hiarcs acabara pasando a Rybka, hace ya más de 1 año que lo tiene entre las cuerdas y en esta ocasión se ha escapado por los pelos gracias a los 40 Cores (y a pesar de todo fue incapaz de ganar el torneo de Blitz) es decir un 500% mas potencia de proceso que Hiarcs y además no hay que olvidar que Rybka funciona a 64 Bits y Hiarcs de momento lo hace a 32 Bits , en cuando Hiarcs de el salto a los 64 Bits además de ajustarlo bien para los sistemas Multi procesador no me cabe la menor duda de que Rybka ya no estará es la situación actual.

En definitiva pienso que hay muchas formas de afrontar el asunto y creo que si Tú programa tiene una buena base de conocimientos de ajedrez seguro que jugara bien , también tienes la opción del auto-aprendizaje con los programas más fuertes para que tú programa memorice situaciones complejas en el tablero o finales de partida , creo que el mundo de la programación es muy complejo pero también es un mundo apasionante.

Espero charlar contigo en otra ocasión Pedro y me han parecido muy interesantes tús puntos de vista.

Un fuerte saludo Pedro.............
No es sencillo encontrar un buen libro de ajedrez en el que puedas aplicar sus conocimientos a tu programa de ajedrez. En un libro de ajedrez te habla de la importancia de centralizar las piezas, de la pareja de alfiles, las columnas abiertas, casillas débiles, peones doblados, aislados y pasados. Pero a un programa tu le tienes que indicar valores exactos para cada término y eso es lo complicado.

Por ejemplo, cuando llevas una torre a una columna abierta, ¿que bonus das a eso? la mayoría de programas dan un bonus de +0.20 puntos, posiblemente si le des menos valor al programa le costará llevar sus torres a columnas abiertas y si le das más valor intentará por todos los medios hacerlo y perderá otras consideraciones posicionales.

Calcular el valor exacto para ese término te puedo costar el tener que jugar unas 2500 partidas. ¿Te imaginas entonces tener que valorar más de 100 términos?

Así que muchas veces, es mucho más rápido estudiar el código de programas abiertos que un libro.

Un programa como Fruit-TOGA, se caracteriza por tener una evaluación que no es demasiado complicada, como dije también en un anterior mensaje, la búsqueda del programa es tan importante o más que la evaluación.

Si que es cierto que en algunas ocasiones me ha tocado aprender un poco de teoría de ajedrez para yo misma aplicarla al programa, esa teoría hace que hoy en día comprenda muchos términos de ajedrez que antes no sabía que ni existían, pero la verdad es que eso no me ha hecho jugar mejor como humano.

Es cierto también que me gustaría tener un mejor nivel de ajedrez,en lugar de 1800 pues tener por ejemplo 2200 para entender mejor las partidas mientras se van jugando. Mejorar ese nivel de ELO es muy complicado cuando tienes más de 30 años, tienes que estudiar libros y jugar partidas y partidas y es bastante complicado compaginarlo todo, trabajar, progamar y jugar.

De todos modos, yo pienso que a partir de 1700 puntos, con la ayuda de programas puedes hacer unos buenos análisis de las partidas de tu programa, pero como dije en un mensaje anterior a costa de mucho trabajo y paciencia. Por ejemplo hay un estupendo programa que es TOGA LOG, es una ampliación del programa TOGA II 1.2.1a el cual no solo te indica la evaluación de una posición, sino que desgrana todos los términos de la evaluación, así puedes saber el valor de cada pieza no solo en cuestión material sino posicional, es decir dónde está situada, su movilidad, puedes ver los peones como son puntuados si están aislados, retrasados, pasados, la seguridad del rey, etc.

Si quieres utilizar mi programa lo puedes encontrar:

http://danasah.googlepages.com

Saludos,

Pedro
pedrox
Member
Posts: 43
Joined: Wed Sep 26, 2007 7:53 am

Post by pedrox »

IA wrote:Hola Dylan , ya se que sí aumentas la potencia no consigues doblar el Elo , es algo que lo tengo visto por ejemplo del pase de programas de 486 a Pentium , de Pentium a Pentium MMX , de Pentium MMX a K6...... normalmente si triplicas la potencia ( de calculo en Mips de potencia ) equivale a unos 70 Elos me imagino que deben haber usado este parámetro orientativo y en total la maquina de Vasik tiene aproximadamente 5 veces más potencia de calculo que la que tenia Hiarcs y eso daría un Elo de unos +100 aproximadamente.

La Pregunta que me hago en este caso es la siguiente , si Rybka supera por una gran diferencia en Elo a todos los programas de ajedrez en todas las listas ¿ por que ponerle una potencia tán abrumadora a Rybka? He visto en torneos anteriores que en igualdad de procesadores Hiarcs se lo come , creo que Vasik debe haber pensado que lo mejor es no correr riesgos y una manera de no tener miedo a perder es la de aumentar la potencia de calculo , pero por otro lado y desde el punto de vista psicológico denota que el programador Vasik tiene miedo a perder y el miedo surge de la inseguridad cuando algo no funciona según lo previsto , así que eso indica que de ahora en adelante no bajara de 40 Cores sino todo lo contrario lo subirá si puede al maximo.

Estoy de acuerdo que el resultado también depende de la suerte ya que los torneos por el campeonato del mundo son muy pequeños en partidas , pero este tipo de campeonatos deben de ser donde más se atragante Rybka ya que no le dá tiempo a desplegar sú fuerza , si suponemos que es el programa que más Elo tiene , si es asi , entonces un programa con mucho Elo funciona mejor en torneos largos con más partidas, por eso creo que sí Hiarcs optimiza el uso de más Cores las diferencias con Rybka quedarían anuladas.

Cuando un programa supera los +2700 Elos la verdad es que ya dá lo mismo con el programa que juegues , en este caso prima el estilo de juego y las opciones del programa “por eso te comente lo del estilo “anti-humano” este es el motivo por el que uso Hiarcs , por sú estilo tan particular , si me dejara influenciar por las listas Elo me tendría que comprar el programa Rybka , pero disfruto más jugando con el estilo de juego de Hiarcs que con la apisonadora de ajedrez Rybka , es más , llegados a este punto con los programas libres que hay hoy en día con más de +2800 elos ¡para que me quiero comprar Hiarcs! En mi caso por 2 razones , una por la fuerza de juego y por el estilo de juego y otra por el libro de aperturas optimizado , si Mark le cambiara el estilo de juego a Hiarcs y tuviera mucho más Elo y le quitara el libro de aperturas como hace Rybka 3 , entonces ¡ para que me iba a comprar Hiarcs! En este caso me compraría Rybka, por este motivo a nivel particular las listas no me dicen mucho , estan muy bien pero no me guío por las lista Elo cuando compro un programa de ajedrez.

Saludos Dylan.........
El campeonato del mundo es muy importante para los programas comerciales, nosotros sabemos que hay listas como CCRL y CEGT que juegan cientos de partidas con los motores y pueden establecer un ranking de ELO para los programas, pero muchos aficionados al ajedrez y jugadores profesionales no conocen dichas listas, cuando estos jugadores quieren comprar un programa de juego para jugar contra ellos o analizar sus partidas posiblemente intenten comprar el mejor y es posible que piensen que el mejor es el que ha ganado el campeonato del mundo.

Así que Rybka hace bien en asegurarse el campeonato del mundo para que sus ventas vayan en buen camino.

Pedro
User avatar
Dylan Sharp
Senior Member
Posts: 2431
Joined: Fri Aug 10, 2007 12:07 am

Post by Dylan Sharp »

Creo que el secreto de Rybka para mejorar unos 120 puntos de la version 2.3.2a (que ya de por si era sorprendentemente fuerte) a la version 3 fue añadir tantos términos como fuera posible con bonus tan exactos como fuera pósible, y que Rybka los cambiara durante el juego dinámicamente dependiendo de la posición.

Esto funcionó excelentemente, ya que se añadieron tantos términos que Rybka 3 Beta acabo siendo el doble de lento que el antecesor, y aún así era unos 70 ELO más fuerte. Se estimaba que al mejorar la búsqueda se mejoraría la velocidad y se podría llegar hasta unos 100 ELO de mejora, pero Vas encontro la forma de mejorar la búsqueda tanto que Rybka 3 se volvió más de el doble de rápido que la versión anterior. Despues de esta explicación no es tan extraño que Rybka 3 sea tan fuerte.

Los demás terminos que parecían no ayudar a Rybka 3 aunque no se pudieron expicar por qué, fueron implementados en las versiónes Dynamic y Human. Human enfocandose en terminos que afectan la posición a largo plazo y Dynamic en los que afectan la posición a corto plazo.

Creo que bien Hiarcs podría aprender de qué le funciono hacer a la competencia.
User avatar
Dylan Sharp
Senior Member
Posts: 2431
Joined: Fri Aug 10, 2007 12:07 am

Post by Dylan Sharp »

Por lo que leí, ellos ya estaban seguros de que iban a ganar el campeonato del mundo, pero querían experimentar cosas nuevas como el Cluster Rybka, que era la primera vez que lo intentaban y que bien podría haber sido un monumental fracaso (Rybka hizo movimientos extraños que no hubiera hecho en una octal) pero no lo fue, y creo que hubieran tenido el mismo resultado sin necesidad de tantos cores.

Respecto a las listas de ranking, debido a que la puntuación ELO no esta hecha para medir la fuerza de programas tan separados en fuerza, y por que los que prueban las máquinas tienen que poner a Rybka contra oponentes mucho más debiles para tener suficientes juegos, en realidad a Rybka le ponen un rating más bajo del que merece (o más bajo del que tendría si hubiera varios programas llenando ese espacio entre Rybka y el numero 2.) Da miedo.

Es por eso que a Vas se le ocurrio sacar una versión muy avanzada de Rybka gratuita y poder decir "¡Miren, mi programa gratuito es más fuerte que cualquier otro programa comercial!"
User avatar
IA
Member
Posts: 433
Joined: Wed Sep 10, 2008 1:12 pm
Location: Spain

Post by IA »

Hola Dylan , me parece muy interesante lo que cuentas , ya ley en el foro de Rybka los Elos que iba dando Rybka 3 Beta antes de salir , a veces decían que tenia +200 Elos otras veces +150 Elos...... lo de las versiones Dinamic y Human ya suponía que eran versiones experimentales de la versión de Rybka 3 definitiva y que prefirió darlas para ver que comportamiento tenían , es decir que en cierto modo esta usando a los propios usuarios para que sean sus testadores oficiales...... tengo que reconocer que Vask es bastante inteligente y también lo ha sido regalando la versión Rybka 2.2n2 como bien dices , por ahora todo le esta saliendo más o menos bien , veremos a ver cuanto le dura la alegría ya que el resto de programadores no se esta durmiendo en los laureles ni mucho menos.

Según comentas Dylan , la clave del éxito de Rybka esta en la precisión de búsqueda o la evaluación posicional , es decir que si Hiarcs y Rybka tuvieran los mismos conocimientos programados Rybka le ganaría a Hiarcs a la hora de elegir las mejores jugadas y más precisas en cada momento , debe de ser algo así como si la información la obtuviera de manera rápida y precisa , mientras que la mayoría de programas parece que se internan en un laberinto posicional del cual muchas veces son incapaces de encontrar las mejores jugadas , los 2 puntos más importantes son la evaluación posiciones y la toma de decisiones y parece que estos 2 parámetros Rybka los controla muy bien y es un poco la clave del éxito de este programa.

Por lo demás yo sigo confiando en el buen hacer y el trabajo duro al que Mark nos tiene acostumbrados y sigo apostando por Hiarcs que es el programa que tiene más posibilidades de mejora junto con Rybka desde luego , en mí caso particular me gusta más analizar y jugar con Hiarcs antes que hacerlo con Rybka , Rybka lo tengo como el Terminator , cuando me apetece ver como destroza a otro programa o analizar alguna posición curiosa , pero no es de mí estilo este motor por muy fuerte que sea aunque reconozco que últimamente solo uso Hiarcs y Rybka , yo solo espero que a Mark se le ocurra la manera de que Explote la fuerza de Hiarsc sin afectar mucho sú estilo de juego.

Desde un punto de vista del Elo es cierto que Rybka es demoledor y no tengo nada que decir al respecto, los Test son claros y Rybka es el mejor y tienes razón Dylan con que la mayoría de programas son muy flojos comparados con Rybka y todo parece indicar que seguirá así por bastante tiempo en el aspecto del Elo de Rybka.

Saludos Dylan son muy interesantes tús apreciaciones......

-----------------------------------------------------------------------------



Hola Pedro , gracias por darme el Link de descarga , lo he estado leyendo y es muy interesante , en solo 3 años ha subido más de +600 Elos , encima según he leído lo pones a prueba frente a humanos y en algunas competiciones , ya te diré Pedro mí impresión cuando lo pruebe pero por lo que veo tiene un nivel de Gran Maestro , seguro que me dará una buena paliza je je je

Con respecto a lo que comentas del programa Toga Log y las valoraciones que dá me recuerda mucho a las que daba el programa Rebel 12 y el Prodeo .

Debe de ser muy complicado dar una valoración exacta sobre el valor de las piezas en función de la posición , pero solo se me ocurre como camino fácil hacer diversos Test rápidos tipo tácticos y posicionales para los parámetros más importantes y ver que valoración dá en función del cambio de parámetros , es decir que una vez tengas todos los conocimientos programados de la versión definitiva dedicar 1 mes ó 2 meses a probar los parámetros más importantes con los diversos Test en partidas rápidas o movimiento relativamente cortos.


Saludos Pedro y ya te contare que tal me va tú programa.
Post Reply