Programming Contest: Trading (Results)

    Many thanks to all participants of the programming contest ! We are pleased to announce the final results of the competition.

    The competition involved 186 solutions. We held a tournament between them in two rounds, as announced earlier. Congratulations to the winners:

    1. Asta - a prize of 3000 USD .
    2. Silent Bob - a prize of 2000 USD .
    3. Robert Speed - a prize of 1000 USD .

    A special prize of 400 USD is received by the participant under the pseudonym of indutny for developing an alternative arena for online testing of solutions with a higher bandwidth than that provided by us. Thank!

    The official results table can be found on GitHub .


    All solutions are published in the submissions directory . Each subdirectory contains a script solution.jsthat participated in the testing. If the participant has sent an archive with source texts, then its contents are placed in a subdirectory src. Considered (and published) only the last of the solutions sent by each participant.

    Seed values

    As promised, we took the first tweet from @SpringerTV , which appeared after the end of making decisions, and placed it in a previously published script. This script with a tweet text, slightly modified for separate output of two subsequences, was published as seeds.js .

    The first 500 odd-numbered members of the sequence are placed in the file round1.txt and used in the first round.

    The first 500 even members of the sequence are placed in the file finals.txt and used in the final.


    The 186 decisions involved in the first round formed 34,410 ordered pairs. That is how many sessions were conducted with each of the 500 seed values. The total number of sessions in the first round was 17,205,000. Each decision participated in 185,000 sessions.

    In 13,868,284 sessions (80.6%), agreement was reached. The average result of the session was 5.8728 points, and the average result among the sessions in which agreement was reached was 7.2858 points.

    Negotiations were interrupted in 626,779 sessions (3.64%) for various reasons (invalid proposals, exceptions, expiration of the time).

    50 decisions reached the final. They formed 2,450 ordered pairs, and we tested them additionally on another 500 seed values. To rank the finalists, we also used the results of the sessions between them from the first round (but not the results of the sessions with the participation of decisions that did not reach the final). Thus, the places among the top 50 solutions were determined on the basis of testing at 1000 seed values. The total number of sessions was 2,450,000, and each decision participated in 98,000 sessions.

    In the final agreement was reached in 2 358 913 sessions (96.28%). The average result of the session was 7.0275 points, and the average result among the sessions in which agreement was reached was 7.2989 points. It is impressive how well the top 50 solutions use almost every opportunity to make a deal.

    In the final, negotiations were interrupted in 1,272 sessions (0.05%).

    Session Protocols

    The full protocols of all 17,205,000 sessions of the first round are published in the archive round1.tar.bz2 (2.1 GB), and the protocols of 2,450,000 sessions of the final are in the archive finals.tar.bz2 (322 MB). The content of these archives is partially overlapped, as some sessions belong to both the first round and the final.

    In these archives in each file of the form S/A-B.jsonthere is a session protocol with a seed value S, where the solution Awas the first participant, and the solution Bwas the second.

    To "play" the session protocol in a readable format, you can use the command haggle.js --replay=LOG.json.

    We would be interested to see in the comments interesting approaches to the analysis of this data set.

    Result Tables

    Legend for the official result tables :

    • S : The amount of points gained (this is the subject of competition)
    • S / N : Average Session Result
    • A : The number of sessions with the agreement
    • A / N : Percentage of sessions with the agreement
    • S / A : Average result of a session with an agreement
    • X : Number of sessions interrupted by this participant (due to exceptions or incorrect results)

    The first table shows the results of the finalists, the second - the results of decisions that did not reach the final.

    Thanks again to all the participants!

    Also popular now: