La batalla de los clones

jueves, 10 de marzo de 2011

MÉXICO, D.F., 10 de marzo (apro).-Hace un par de semanas el Maestro Internacional de Ajedrez David Levy escribió un interesante artículo sobre lo que está pasando en el mundo de los programas que juegan al juego ciencia. Cabe destacar que Levy se hizo famoso al iniciar una apuesta en donde afirmaba que la ciencia no podría crear una computadora que le ganara en un encuentro formal en los siguientes diez años. La apuesta fue conocida por otros científicos y ajedrecistas y se incrementó la cantidad apostada. Al final de la historia, Levy ganó la apuesta pero, hasta donde sé, nunca pudo cobrarla.

Lo interesante en todo esto es que el escocés Levy ha estado durante toda su vida involucrado con el mundo de las computadoras y programas que juegan al ajedrez. Ahora ha escrito el artículo "La clonación de los motores de ajedrez", donde alude a este fenómeno que, dice, ha empezado a aumentar con preocupación por dos razones. La primera es que los programas de ajedrez pueden ser un buen ingreso si juegan bien. Los aficionados y profesionales ahora buscan este tipo de software porque le permiten analizar las partidas con mucha más precisión y, segunda, porque muchos programas que juegan con gran fuerza, han sido puestos a disposición de la comunidad de cómputo, con todo y código fuente disponible, es decir, que el o los autores de algunos motores que juegan muy bien al ajedrez han donado su trabajo a la comunidad y, entonces, cualquiera puede estudiar cómo es que estos programitas llegan a jugar tan bien.

Hay una Asociación Internacional de Juegos por Computadora (ICGA, por sus siglas en inglés), que sanciona los torneos que se hacen entre ordenadores. Cada año el mejor programa, en una fiera competencia entre procesadores de computadora, se convierte en el campeón mundial de ajedrez cibernético. Este título es conveniente en términos comerciales, pues el ganador tiene un argumento de venta espectacular: ¡compre su programa de ajedrez, campeón mundial entre máquinas!... Por ello, el clonar programas de otros o hacerse del código de terceros para incorporarlo en el de un "nuevo" programa puede a veces caer en el plagio más elemental.

En 1996, por ejemplo, el programador alemán Herr Langer inscribió a su programa Quickstep, que tuvo un sensacional inicio en la competencia entre computadoras. Sin embargo, Richard Lang, entonces programador de las computadoras de ajedrez Mephisto, reveló que la interfaz de Quickstep era idéntica a su propio programa. El asunto fue investigado y se interrogó a Langer, quien rechazó todas las acusaciones. Sin embargo, fue el propio Richard Lang quien mostró un error en su código, el cual se reproducía exactamente en el programa Quickstep. Entonces, Langer confesó y fue expulsado del torneo. A todo esto, el alemán estaba de luna de miel y su esposa vio cómo lo desenmascaraban y descalificaban. Triste historia.

Un caso más reciente fue el del programa SquarknII, del Maestro FIDE Jonadry González Espín, de la Habana, Cuba, que participó en el Campeonato Mundial de Ordenadores del 2010 en Kanazawa, Japón. Después de hacer muchos esfuerzos por parte de la organización para que González pudiese acudir a esta justa --por problemas de visado, que finalmente se resolvieron--, se encontró que su software era un clon del programa Robbolito 0.75g3, con sólo tres valores cambiados en todo el código. Espín fue descalificado y castigado con su exclusión, de por vida, de cualquier evento de la ICGA.

Pero el peor problema es el caso de Rybka que, se alega, es una copia de un programa de código abierto llamado Fruit. Rybka, programado por el Maestro Internacional Vasik Rajlich, que  ha ganado el campeonato mundial de máquinas en 2007, 2008, 2009 y 2010. Por tres años han corrido rumores en el mundo del ajedrez computarizado de que Rybka está basado en el código de Fruit, programado por Fabien Letouzey, quien quedó segundo en el campeonato mundial del 2005, en Reykjavik.

Para poder considerar si Fruit ha influenciado –y en qué medida-- el código de Rybka, debemos empezar por examinar la historia de ambos programas. En los resultados de estos campeonatos mundiales de programas de ajedrez, en febrero del 2004, Rybka quedó en el lugar 53 de 54 posibles. En su aparición en el 2004, Fruit tenía funciones básicas de evaluación y búsqueda, pero en cada nueva versión hizo mejoras de unos 100 puntos de rating, por lo que en la versión 2.1, aún de código abierto, ya era un programa muy fuerte. La última versión de Fruit ya no es abierta, presumiblemente porque su autor no quiere que se generen clones con su código.

De acuerdo con Wikipedia, Vasik Rajlich empezó a trabajar en Rybka a principios del 203. La primera versión beta de Rybka hizo su debut en diciembre del 2005. En ese entonces el programa hizo en el torneo Paderborn de Computadoras de ajedrez, 5.5 puntos de 7 posibles, por encima de Gandalf, Zappa, Spike, Shredder y Fruit.

Así pues, Rybka logró su primer gran resultado en diciembre del 2005, seis meses después de la salida del código abierto de Fruit 2.1. Y aunque las coincidencias se dan, muchos expertos de ajedrez por computadora piensan que el éxito de Rybka se debe al código fuente de Fruit.

Pero todo lo anterior eran sólo rumores. Sin embargo, más recientemente éstos se convirtieron en alegatos firmes, hechos por expertos en la materia y apoyados en evidencia que por lo menos de forma superficial parecen darles la razón, debido a su naturaleza y el volumen de pruebas presentadas. Levy, no obstante, se reserva su propia opinión al respecto.

Zach Wegner, quien desarrolla actualmente una nueva versión de Zappa, con el permiso de Anthony Cozzie, el programador original de este sistema, y quien participara en el campeonato mundial del 2010 con su programa Rondo, expone los siguientes argumentos:

La evaluación de Rybka ha estado sujeta a mucha especulación desde su aparición. Para decirlo en términos sencillos, la evaluación de Rybka es virtualmente idéntica a la de Fruit. Hay un par de cambios importantes, sin embargo, que deben ser considerados en este alegato:

 

  • La más obvia es la traducción de la estructura de datos de Rybka de bitboards (tableros de bits). En algunas instancias, la evaluación de los bitboards, en lo que se refiere al peón, puede ser ligeramente diferente al software original (Fruit). Pero la funcionalidad de alto nivel es equivalente en estos casos. Los cambios parecen ser con respecto a una representación más natural de los tableros de bits.
  • La lógica de los finales y los empates en Fruit ha sido reemplazada por las tablas de finales en Rybka. Esto ya lo usan prácticamente todos los programas.
  • Todos los pesos sobre los criterios para jugar deben establecerse específicamente a mano. Debido a los valores poco naturales de Rybka, aparentemente estos se organizan de manera automática. Sin embargo, hay un par de lugares en donde los valores originales de Fruit son los mismos en Rybka.

 

Vasik Rajlich, el autor de Rybka, rechazó, desde que se dijo que su programa era un clon de Fruit, estos alegatos y de hecho escribió en el 2007: "La especulación de Osipov (creador de otro programa de ajedrez) es incorrecta. Rybka es y siempre ha sido código original, con la excepción de varios fragmentos de bajo nivel que están en el dominio público".

Poco tiempo después, Vasik escribió a Levy, diciéndole: "El código fuente de Rybka es original. Usé muchas ideas de Fruit, como he dicho muchas veces. Fruit y Rybka usan todo género de ideas comunes en el ajedrez por computadora".

Pero cuando se le preguntó si su respuesta significaba que el código fuente de Rybka era todo original, Vasik replicó: "Todas las versiones de Rybka son originales en el sentido que yo siempre escribí el código fuente (con la excepción estándar de varios fragmentos de bajo nivel)"

Así las cosas, las dudas persisten, pero es claro que se ha arrojado una sombra sobre Rybka y su creador Rajlich. ¿Cómo probar que Rybka es una copia y no un trabajo original? Es algo que los otros desarrolladores intentan hacer para desacreditar y, quizá, eliminar de las competencias computarizadas a uno de los programas de más éxito en este campo.

Comentarios