Concurso de programación: Comercio (anuncios)

Anuncios para los participantes en el concurso de programación .

Procedimiento de prueba final


Inicialmente, buscamos realizar un torneo con el principio de "cada uno con cada uno". Sin embargo, varios participantes anunciaron su intención de presentar al concurso muchas decisiones débiles, "spoilers", contra las cuales la decisión principal del participante juega bien, o expresaron temor de que otros lo hagan. Dichas acciones están claramente prohibidas por las reglas, pero incluso si las reglas se eluden de alguna manera, esto es contrario al espíritu de la competencia. Esta competencia trata sobre quién es mejor para escribir un programa y no quién doblará el "panorama" por sí mismos, después de haber descargado más "spoilers".


Aunque podemos y usaremos varios métodos para identificar y descalificar a los "spoilers", siempre existe la posibilidad de que no revelemos algo. Nos gustaría que los ganadores de la competencia sean aquellos que inventan y programan mejor los algoritmos, y no aquellos que son más creativos para eludir las reglas.

Por lo tanto, decidimos realizar la prueba final en dos etapas. En la etapa de calificación, para N valores iniciales seleccionados al azar, se llevará a cabo el torneo "cada uno con cada", y el par (A, B) se considera diferente de (B, A). Por lo tanto, cada par (y en cada orden) se lanzará en cada valor de semilla. El resultado de la fase de calificación será una lista de participantes ubicados en orden descendente de la cantidad de puntos ganados (es decir, la cantidad de puntos y no el número de "victorias").

Luego, los K mejores participantes de la lista irán a la final, donde se realizará un torneo adicional entre ellos en M otros valores iniciales seleccionados al azar. Las posiciones finales entre estos K participantes serán determinadas únicamente por la suma de los puntos anotados por ellos en sesiones con valores de semilla N + M entre ellos, sin tener en cuenta las sesiones que involucran decisiones que no llegaron a la final.

Por un lado, esto permitirá probar más a fondo un rango estrecho de decisiones que dicen ser premiadas, y por otro lado, privará a los spoilers del soporte para soluciones basadas en él.

Los valores específicos de N , M y K se anunciarán más adelante, ya que dependen de la cantidad de soluciones que los participantes nos envíen.

Arenas de negociación en línea


Hemos creado varias arenas nuevas: standard_1s es similar a la standard , pero supervisa el cumplimiento del límite de 1 segundo por movimiento (esta arena corresponde exactamente a las condiciones de la prueba final); large y large_1s : arenas con configuraciones "aumentadas" en caso de que alguien quiera probar suerte con ellas.

Vea la lista de arenas en la página del proyecto en GitHub.

Para cada arena, las estadísticas "en vivo" ahora están disponibles para cada decisión que se tome (enlaces en la primera columna de la tabla). Las estadísticas se dan en formato JSON legible por máquina, a partir del cual no será difícil para los concursantes obtener la presentación de los datos que les interesan. La clave de estos datos es el hash del identificador de cliente especificado con el parámetro --id . Este sistema de prueba hash le muestra cada vez que se conecta al servidor. Para cada participante, se proporciona el número total de sesiones completadas ( sessions ), el número de acuerdos alcanzados ( agreements ) y el puntaje total ( score ) para todo el tiempo ( all ) y para cada día individual (UTC).

Probar actualizaciones del sistema


Siga el historial de actualizaciones en GitHub: corregimos regularmente los defectos encontrados por los participantes en el sistema de prueba. ¡Haz git pull regularmente!

Chat oficial


Para discutir el concurso, se creó un canal en Telegram: @hola_challenge_haggling .

Source: https://habr.com/ru/post/es415467/


All Articles