31 de octubre de 2012

Entrevista con el autor de Houdini

Chessbase ha publicado una entrevista con el creador de Houdini aprovechando que la semana que viene sale el Houdini con la interfaz de Fritz. Me parece muy interesante así que he decidido ponerosla por aquí.

Entrevista con Robert Houdart, autor de Houdini


Robert, no eres ante todo programador. ¿Cúales son exactamente tus antecedentes?

Mi formación académica principal en realidad radica en la mecánica estructural y en la transferencia de calor. Me gradué en la universidad en 1991 y luego fui a trabajar Tractebel Energy Engineering, en el diseño de las plantas nucleares belgas y suecas. Durante ocho años mi trabajo fue diseñar sistemas de tuberías para nucleares que fueran resistentes a los terremotos y a los impactos de aviones. Para ello desarrollamos algunos métodos computacionales nuevos, con nombres divertidos "Twin Mode Rotation" (Rotación en modo gemelo) y "Adaptive Modal Summation" (Suma modal adaptativa).




Tras ese período cambie a un sector completamente distinto: el negocio de programas informáticos conocido como gestión de relación con el cliente. Desde 1999 he desarrollado dos aplicaciones: "eLink" y "Efficy" que usan hoy en día unas 25.000 personas, principalmente en Europa. Aunque nunca he tenido ninguna educación formal sobre programación, siempre he estado programando desde que tenía 13 o 14 años. Está en mi sangre y siempre he dado un toque de programación a cualquier actividad profesional en la que estuviera ocupado.

¿Y entonces como de repente diste con Houdini, que fue desde el comienzo un programa de ajedrez muy fuerte?

Desde mediados de los años 80 más o menos he estado constantemente escribiendo programas relacionados con el ajedrez como diversión, fuesen módulos de ajedrez o  un programa  para imprimir diagramas de ajedrez en una impresora matricial para la revista del club de ajedrez de Leuven. He escrito varios módulos particulares, la mayor parte de ellos no demasiado fuertes e incluso no muy completos.
 

Trabajando en su proyecto de telescopio (Dentro de poco les contaremos más sobre él)
El trabajo con Houdini comenzó en 2009. En aquel momento estaba esperando por el espejo de un proyecto de gran telescopio en el que estaba implicado. El espejo acumulo mucho retraso y de alguna forma estaba buscando una salida para la energía creativa que estaba acumulando. Comencé con esa idea de construir el mejor módulo de ajedrez que pudiera y fui ayudado mucho por la cultura abierta que vino con Internet. Ya sabes, hace dos décadas tenías que inventar todas las partes del módulo de ajedrez desde cero (y yo he tenido mi buena parte de ello), pero hoy en día estamos en una situación en la que las técnicas, ideas y ejemplos están fácilmente disponibles en Internet. Puede decirse que es el comienzo de una era en el panorama del ajedrez informático. Como autor de un módulo ya no estás obligado a sentarte en tu esquina reinventando la rueda. La Wikipedia del ajedrez informático, algunos módulos fuertes de código abierto y los foros de discusión discusiones en Internet sobre técnicas de programación de ajedrez hacen el diseño y desarrollo de un módulo fuerte mucho más fácil que digamos hace 20 años.

¿Cuál es el secreto de Houdini que lo hace tan fuerte?

Dos conceptos clave: buena valoración y una selectividad incluso mejor. Es evidente que una buena evaluación de la oposición es la clave para un buen módulo de ajedrez. Houdini es probablemente el mejor módulo para evaluar la movilidad de las piezas y el control del espacio en el tablero. Tiene una valoración muy equilibrada en todas las fases de la partida. Siempre he tratado de vincular la valoración de Houdini a la probabilidad de ganar la partida. Por ejemplo cuando Houdini 3  muestra una valoración de +1,00 en el mediojuego tiene un 80% de probabilidades de ganar la partida contra un rival del mismo nivel con un control del tiempo relámpago. Creo que ese es un aspecto del módulo muy útil.
La selectividad es otra característica clave en Houdini. Lo mismo que un jugador humano, un módulo no mira todas las jugadas con la misma profundidad. Los movimientos potencialmente buenos se examinan exhaustivamente, mientras que a las jugadas aparentemente más débiles sólo se les echa un rápido, somero vistazo. Algunas jugadas examinan hasta una profundidad de 40 o 50 plies; otras sólo cinco. Houdini tiene una buena capacidad para identificar qué jugada de la posición tienen algún potencial. Es similar al instinto y experiencia de un ajedrecista humano fuerte: mira sólo un puñado de jugadas en una posición, descartando casi instantáneamente y sin pensar las otras 30.



Esta capacidad ("instinto", si tú quieres) ha sido importantemente refinada y optimizada en cada versión. En comparación con Houdini 1.03, Houdini 1.5 añadió más amplitud a la búsqueda, identificando más jugadas potencialmente interesantes. Houdini 2.0 añadió una capa táctica mejorada a la profundidad de Houdini 1.5a convirtiendo más del potencial de jugadas interesantes. Houdini 3 ahora aporta profundidad adicional a todo este árbol de búsqueda. Esto también explica por qué Houdini es también ya muy fuerte con controles el tiempo relámpago: su instinto lo hace escoger jugadas mejores incluso cuando el tiempo es muy limitado.

¿Cuánto debes a otros programas y programadores? ¿Colaboraste con alguien? ¿Recibiste algún consejo y ayuda?

Como mencioné antes, la comunidad de Internet es una gran fuente de inspiración y la información que ahora está disponible en segundos hubiera llevado siglos recolectarla hace veinte años. Además de la Wiki del ajedrez informático, que es un formidable recurso para el aspirante a desarrollador de módulos, debo destacar el módulo de código abierto Stockfish, que fue la inspiración de la implementación del multihilo en Houdini, y el módulo de código abierto IPPOLIT que facilitó toda la disposición de técnicas de búsqueda y evaluación. El esfuerzo de desarrollo lo hago yo completamente, pero estoy apoyado por gente de todo el mundo que manda ideas sobre mejoras, muy a menudo posiciones en las que Houdini no rinde bien. Algunos aficionados incluso han donado equipos para probar el módulo. Es sorprendente cuanto apoyo ha dado la comunidad durante los últimos dos años.



Para el  desarrollo ha ayudado que yo mismo sea un ajedrecista decente (entorno a 2250 en los años 90). 
Ayuda a la hora de valorar debilidades y para corregir las mejoras en las condiciones de evaluación.

¿Cuáles son los puntos fuertes de Houdini, además de que pueda derrotar a todos sus rivales en duelos uno contra uno? Tanto los aficionados como los profesionales del ajedrez están más interesados en como puede ayudarlos en concreto.

Houdini se sustenta en el legado de Rybka en el sentido en que aporta valoraciones precisas y útiles en casi cualquier posición ajedrecística que pueda darse en las partidas. Es estupendo en la preparación de aperturas y los análisis post mortem. Mostrará con precisión (y sin piedad) lo que fue bien y lo que fue mal en sus partidas, desde la apertura hasta el final.
Houdini es muy bueno a la hora de defender posiciones difíciles (incluso contra otros módulos de primera fila) y su destreza táctica es literalmente sobrehumana. Siempre he intentado mantener el estilo de Houdini bastante agresivo: consistentemente mantiene la más baja tasa de tablas de todos los módulos del escalafón. Contra más de 3000 rivales, Houdini tiene un porcentaje de tablas más bajo del que se puede observar en un torneo humano de grandes maestros.

¿Puedes mostrarnos algunos ejemplos de como Houdini da con ideas interesantes y útiles que otros módulos no son capaces de encontrar?

El rendimiento de Houdini más impresionante que he visto fue en el encuentro TCEC contra Rybka hace unos 18 meses. Fue poco después del lanzamiento de Houdini 1.5a, y Martin Thoresen organizó este divertido encuentro (una especie de campeonato mundial no oficial) en unos equipos muy fuertes, con el control de tiempo clásico. Las partidas pudieron seguirse en directo por Internet y así yo estaba siguiendo como se desarrolló esta partida. Houdini sacrificó un peón, dos peones, tres peones en un mediojuego sin damas para terminar ganando la partida de forma convincente. Durante la partida yo no estaba seguro de que lo que estábamos viendo fuese una partida brillante y no una especie de oscuro fallo de programación… No creo que ningún otro módulo pudiese jugar la partida en la forma en la que lo hizo Houdini. La mezcla de agresividad con una soberbia valoración táctica y posicional hace de esta posiblemente la mejor partida entre módulos de todos los tiempos, en especial contra el que había sido cinco veces campeón mundial de ajedrez informático.

  

¿Tienes pensado seguir trabajando en el programa, haciéndolo más fuerte y más útil para los ajedrecistas? ¿O en algún momento volverás a la ingeniería y la astronomía?
Me encanta el ajedrez y la programación, así que que mejor forma de expresar eso que creando y mejorando un módulo de ajedrez que es usado por miles de aficionados de todo el mundo. Tras el muy solicitado lanzamiento de Houdini 3, espero disponer de algún tiempo para la familia y para ir a observar estrellas y planetas con el gran telescopio. Pero a comienzos de 2013 comenzaré a trabajar en Houdini 4.

  
¿Entonces cuán fuerte es la versión actual que ChessBase lanzará al mercado la semana que viene?

Desde la versión pública inicial de mayo de 2010 he sido capaz de añadir mejoras de fuerza de unos 150 puntos Elo. Eso son unos 50 puntos por año, una tasa con la que cualquier GM humano estaría encantado. Es gratificante repasar esa evolución, ya que cada punto Elo ganado representa gran cantidad de creatividad y trabajo duro. Yo ciertamente no esperaba en 2009 que Houdini fuese a dominar el panorama de los módulos de ajedrez durante varios años, pero llegados a este punto estoy contento por continuar con el sueño.

No hay comentarios:

Publicar un comentario