Concours de programmation: commerce (résultats)

Un grand merci à tous les participants au concours de programmation ! Nous sommes heureux d'annoncer les résultats finaux du concours.

Le concours a impliqué 186 décisions. Nous avons organisé un tournoi à deux tours entre eux, comme annoncé précédemment. Félicitations aux gagnants:

  1. Asta - prix 3000 USD .
  2. Silent Bob - prix 2000 USD .
  3. Robert Speed - prix 1000 USD .

Un prix spécial de 400 USD est reçu par un participant sous le pseudonyme indutny pour le développement d'une arène alternative pour le test en ligne de solutions avec une bande passante plus grande que celle fournie par nous. Je vous remercie!

Vous trouverez le tableau des résultats officiels sur GitHub .

Des solutions


Toutes les solutions sont publiées dans le répertoire des soumissions . Dans chaque sous-répertoire, il y a un script solution.js qui a participé aux tests. Si un participant a envoyé une archive avec des textes sources, son contenu est alors placé dans le sous-répertoire src . Seule la dernière des décisions envoyées par chaque participant a été prise en compte (et publiée).

Valeurs initiales


Comme promis, nous avons pris le premier tweet de @SpringerTV , qui est apparu après la fin du processus décisionnel, et l'avons placé dans un script publié précédemment. Ce script de tweet, légèrement modifié pour séparer la sortie de deux sous-séquences, est publié sous le nom de seeds.js .

Les 500 premiers membres impairs de la séquence sont placés dans le fichier round1.txt et utilisés dans le premier tour.

Les 500 premiers membres pairs de la séquence sont placés dans le fichier finals.txt et utilisés en finale.

Statistiques


Les 186 décisions qui ont participé au premier tour ont formé 34 410 paires ordonnées. Autant de séances ont été menées avec chacune des 500 valeurs de semences. Le nombre total de sessions du premier tour était de 17 205 000. Chaque décision a participé à 185 000 sessions.

Un accord a été conclu en 13 868 284 séances (80,6%). Le résultat moyen de la session était de 5,8728 points, et le résultat moyen parmi les sessions au cours desquelles un accord a été conclu était de 7,2858 points.

Les négociations ont été interrompues dans 626 779 sessions (3,64%) pour diverses raisons (offres invalides, exceptions, expiration de délai).

50 décisions ont atteint la finale. Ils ont formé 2 450 paires ordonnées et nous les avons également testées sur 500 autres valeurs de graines. Pour classer les finalistes, nous avons également utilisé les résultats des sessions entre eux du premier tour (mais pas les résultats des sessions impliquant des décisions qui n'ont pas atteint la finale). Ainsi, les places parmi les 50 meilleures solutions ont été déterminées sur la base de tests à 1000 valeurs de graines. Le nombre total de séances était de 2 450 000 et chaque décision a participé à 98 000 séances.

En finale, un accord a été conclu en 2 358 913 séances (96,28%). Le résultat moyen de la session était de 7,0275 points, et le résultat moyen parmi les sessions au cours desquelles un accord a été conclu était de 7,2989 points. Il est impressionnant de voir à quel point les 50 meilleures solutions utilisent presque toutes les opportunités pour conclure un accord.

En finale, les négociations ont été interrompues en 1 272 sessions (0,05%).

Journaux de session


Les protocoles complets des 17 205 000 sessions du premier tour ont été publiés dans les archives round1.tar.bz2 (2,1 Go), et les protocoles de 2 450 000 sessions de la finale ont été publiés dans les archives finals.tar.bz2 (322 Mo). Le contenu de ces archives se recoupe partiellement, certaines sessions appartenant à la fois au premier tour et à la finale.

Dans ces archives, dans chaque fichier du formulaire S/AB.json il y a un protocole de session avec la valeur de départ S , où la solution A était le premier participant et la solution B était le second.

Vous pouvez utiliser la commande haggle.js --replay=LOG.json pour «reproduire» le protocole de session dans un format lisible.

Nous serons intéressés de voir des approches intéressantes pour l'analyse de ce tableau de données dans les commentaires.

Tableaux de résultats


Symboles des tableaux de résultats officiels :

  • S : Nombre de points marqués (c'est le sujet du concours)
  • S / N : Résultat de session moyen
  • A : Nombre de séances convenues
  • A / N : Pourcentage de sessions avec accord atteint
  • S / A : Résultat moyen de la session avec accord atteint
  • X : nombre de sessions terminées par ce participant (en raison d'exceptions ou de résultats incorrects)

Le premier tableau montre les résultats des finalistes, le second - les résultats des décisions qui n'ont pas atteint la finale.

Merci encore à tous les participants!

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


All Articles