Selasa, 08 Maret 2011

La batalla de los clones



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 él decía la ciencia no podría crear una computadora que le ganara en un encuentro formal en el transcurso de los siguientes diez años. La apuesta fue conocida por otros científicos y ajedrecistas y se incrementó la cantidad apostada. El final de la historia es que en su momento, Levy ganó la apuesta que, hasta donde sé, nunca pudo cobrarla.

Pero 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 salido con un artículo que se denomina "La Clonación de los Motores de Ajedrez", fenómeno que 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 segundo, 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 cualquiera puede entonces 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), quien 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 mismo, 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.

Por ejemplo, en 1996, un 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 codigo, 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.

Otro 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 se resolvieron finalmente, se halló que su software era un clon del programa Robbolito 0.75g3, con solamente tres valores cambiados en todo el código. Espín fue descalificado y castigado con su no inclusión en ningún evento de la ICGA de por vida.

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, ha ganado el campeonato mundial de máquinas en 2007, 2008, 2009 y 2010. Por tres años han habido rumores en el mundo del ajedrez computarizado 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 en gran medida el código de Rybka, podemos 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 a 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 solamente rumores. Sin embargo, más recientemente estos rumores se han convertido en alegatos firmes, hechos por expertos en la materia y apoyados por 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 esto, se reserva su propia opinión al respecto.

Primero, Zach Wegner, quien está desarrollando una nueva versión de Zappa, con el permiso de Anthony Cozzie, el programador original de este sistema. Wegner participó en el campeonato mundial del 2010 con su programa Rondo. Sus alegatos van así:


  • La evaluación de Rybka ha sido 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 reemplazado 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 ha rechazado, desde que se dijo que su programa era un clon de Fruit, estos alegatos y de hehco 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 1 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 probra que Rybka es una copia y no un trabajo original? Esto es algo que los otros desarrolladores buscan hallar para desacreditar y quizás, eliminar de las competencias computarizadas a uno de los programas de más éxito en este campo.

Tidak ada komentar:

Posting Komentar