martes, octubre 13, 2015

Concurso experimental

Lo sé, lo sé... hace tiempo que tengo este sitio abandonado. Eventualmente volveré a darle energía.

Mientras tanto, estoy experimentando con otro tipo de concurso, más parecido a los de Al Zimmermann, pero usando planillas de cálculo de google en lugar de un servidor web.

El desafío tiene que ver con poliominós y el "juego del 15" de Sam Loyd.

(Edito) La info completa está en este sitio: http://pmpc.neocities.org

Es un sistema experimental, así que no puedo prometer que funcione bien, pero sí que será divertido.

Los interesados pueden pedirme más detalles enviándome un mensaje.


sábado, septiembre 28, 2013

Ignotum: resultados

He aquí los resultados de la competencia de Ignotum tras 1000 rondas con cada combinación de N y K:


puestoestrategiapuntaje
1AlexRodrigo53132
2MarioAdriV52869
3danihpAtStackOveflow52679
4vitopuji51288
5JuliBrahim39746
6DavidLlop17989


Esta planilla contiene todos los detalles, incluyendo los puntjes segregados por valores de N y K.

Este archivo contiene el código de la competencia, incluyendo todas las estrategias enviadas.

¡Felicitaciones a Álex y Rodrigo, los ganadores!

jueves, agosto 08, 2013

Ignotum: código para probar estrategias


Hay otros sitios de competencias entre algoritmos que publican el código del «referí» para que los participantes puedan probar sus ideas antes de la competencia final; me pareció buena idea y la usaré en esta y también en futuras competencias.

En este archivo (update: corregí un sutil bug en el código, bajen el nuevo archivo) está el código básico del torneo. Los que sepan programar en Python podrán aprovecharlo para probar sus estrategias y elegir la mejor para enviar, y los que no quizá puedan usarlo igualmente para mirar la lógica y despejar dudas y, quién sabe, animarse y aprender a programar en Python :)


Aclaraciones:
El script necesita la versión 3 del lenguaje. Pueden usar el script especificando la cantidad de rondas a correr, así como los valores de N y K, en la línea de comandos.

Ante cualquier duda pueden comentar aquí o enviarme un mensaje.

lunes, agosto 05, 2013

Nueva competencia: Ignotum


Para esta competencia he elegido una variante del Datum que surgió conversando con algunos participantes.

Las reglas del Ignotum son básicamente las mismas que las del Datum, excepto por algunas diferencias cruciales. Veamos:

Reglas del juego


Juegan dos jugadores, usando un dado de N caras. Los jugadores no saben cuánto vale N.

En cada turno, un jugador toma el dado, lo arroja, y decide cuál de estas dos cosas hacer:

  • Pasar el turno al otro jugador, anotándose los puntos que indica el dado.
  • Mantener el turno, pero anotarle al otro jugador los puntos que indica el dado.

Esto se repite una y otra vez (cambiando o no de turno, según las decisiones de los jugadores), hasta que se cumplen K turnos. Los jugadores no saben cuánto vale K.


Reglas de la competencia


Para participar, deben enviarme una estrategia (una sola por participante) en forma de algoritmo que indique si pasa o no el turno, en función de estos datos:

  • una lista de los números que ha mostrado el dado en sus turnos (el último será el del turno actual)
  • los puntajes actuales (propio y del oponente)

No olviden que los algoritmos no conocen los valores de N y K.
Aclaración importante: implementaré todo en Python 3, que no tiene límites en el tamaño de los enteros que maneja.

Se agradecerá (aunque no es obligatorio) que envíen código en algún lenguaje de programación real, preferentemente Python 3. A veces es complicado interpretar pseudocódigo.

Cada par de estrategias jugará al menos 1000 partidas para cada combinación de N y K, alternando quién tiene el turno inicial.

La estrategia ganadora será la que gane más partidas en total.

Recibiré estrategias y/o comentarios hasta el 27 de septiembre. ¡Anímense!

sábado, agosto 03, 2013

Datum: Resultados

He aquí los resultados de la competencia de Datum tras dos millones de partidas:



PuestoParticipantePuntos

1
Ariel Futoransky11034886(18.39%)

Emilio Pazo Núñez11032288(18.39%)

2Federico Hermo10906847(18.18%)

3Carlos Luna Mota10879416(18.13%)

4Luciano10545970(17.58%)

5Pablo Coll5600593(9.33%)

Hay un empate técnico entre Ariel y Emilio (la diferencia entre sus puntajes no es estadísticamente significativa), así que los declaro a ambos ganadores.
Emilio presentó tres estrategias, pero como los demás sólo presentaron una, me pareció justo tener en cuenta sólo la que él prefería. Además, el orden de los resultados de las demás estrategias no cambia si las otras dos estrategias participan.

Fue muy interesante comparar e implementar las distintas estrategias. Es posible que las dos ganadoras son equivalentes algorítmicamente, pero no controlé aún que así sea (ambas están expresadas de maneras distintas).

Pueden ver el código de la competencia aquí.

¡Gracias a todos y felicitaciones a Ariel y Emilio!

miércoles, julio 31, 2013

Datum: en proceso

En unas horas cierra el plazo de recepción de estrategias. No creo que me lleguen más, pero obviamente aceptaré las que lleguen hasta la medianoche, (en aproximadamente dos horas).

Lamentablemente recién podré procesarlas durante el fin de semana. ¡Suerte a todos y paciencia!

domingo, junio 09, 2013

Nueva competencia: Datum

Decidí usar para la nueva competencia un juego sencillito que se me ocurrió en sueños hace un tiempo: Datum.

Reglas del juego

Juegan dos jugadores, usando un dado común de seis caras.

En cada turno, un jugador toma el dado, lo arroja, y decide cuál de estas dos cosas hacer:
  • Pasar el turno al otro jugador, anotándose los puntos que indica el dado.
  • Mantener el turno, pero anotarle al otro jugador los puntos que indica el dado.

Esto se repite una y otra vez (cambiando o no de turno, según las decisiones de los jugadores), hasta que uno de los jugadores llega a 30 puntos o más, y es declarado ganador.

Reglas de la competencia

Para participar, deben enviarme una estrategia (o varias) que indique qué hacer (pasar o mantener el turno) en función de estos datos:
  • el número que acaba de obtener con el dado
  • el puntaje actual propio y del oponente

Cada par de estrategias jugará 1000 partidas, alternando quién tiene el turno inicial.
La estrategia ganadora será la que gane más partidas en total; si hay empate, se usarán los puntajes acumulados en todas las partidas para desempatar.

Recibiré estrategias y/o comentarios hasta el 31 de julio. ¡Anímense!

martes, enero 01, 2013

Competencia del Climate Centre

UPDATE: ¡Ya están los resultados de la competencia!
--------------------------------------------------------------------

Hace bastante tiempo que descuido este blog; pero tengo algunas excusas razonables.

Una de ellas es que hace un tiempo fui contactado por el Red Cross Red Crescent Climate Centre (a través de Pablo Suárez, que ha competido en este sitio) para que les ayude a llevar a cabo esta competencia.

Se trata de una versión virtual de un juego sencillo diseñado por el mismo Pablo, que es usado como modelo para informar a los trabajadores humanitarios de las distintas decisiones que pueden tomarse o no tomarse (y las respectivas consecuencias) en situaciones de riesgo climático, así como del valor de los pronósticos disponibles.

Esta competencia no tiene solamente la habitual arista intelectual (que de por sí es valiosa), sino que además hay algunos premios, así como el agradable plus de estar ayudando a una noble tarea.

Las reglas del juego en sí pueden ser descargadas en este enlace (pdf, inglés).
Las pautas para participar (formato y envío de estrategias) están en este otro enlace (pdf, inglés).
Más detalles sobre dónde enviar las estrategias y los premios están en el sitio web de la competencia.

Hay tiempo de enviar estrategias hasta fines de febrero. ¡Suerte a los que participen!