编程竞赛:贸易(公告)

程序竞赛参赛者的公告。

最终测试程序


最初,我们试图以“每个人都参加”的原则进行比赛。 但是,一些参与者宣布打算向比赛提交许多弱小的决定(“破坏者”),参与者的主要决定对此不利,或者担心其他人会这样做。 规则明确禁止此类行为,但是即使以某种方式规避了规则,也有悖于竞争精神。 这场比赛是关于谁最好编写一个程序,而不是谁下载了更多“破坏者”后会自己改变“风景”的人。


尽管我们可以并且将使用各种方法来识别和破坏“破坏者”的资格,但是总有可能我们不会泄露某些东西。 我们希望比赛的获胜者是那些发明和编程算法更好的人,而不是那些在规避规则方面更有创造力的人。

因此,我们决定分两个阶段进行最终测试。 在资格评定阶段,对于N个随机选择的种子值,将举行“每个都有”锦标赛,并且(A,B)对与(B,A)不同。 因此,将在每个种子值上启动每对(并按每个顺序)。 资格阶段的结果将是按照获得的积分数量(即积分数量而不是“获胜”数量)的降序排列的参与者列表。

然后,列表中的K个最佳参与者将进入决赛,然后在他们之间以M个其他随机选择的种子值进行一次额外的比赛。 这K名参与者之间的最终排名将完全由他们在彼此之间以N + M种子值的会话中获得的得分总和来确定,而不会考虑涉及未达成决赛的决策的会话。

一方面,这将使得有可能更彻底地测试声称是获奖的一系列狭窄决策,另一方面,它将破坏破坏者对依赖该决策的解决方案的支持。

NMK的具体值将在稍后宣布,因为它们取决于参与者将向我们发送的解决方案的数量。

在线谈判领域


我们创建了几个新的竞技场: standard_1sstandard_1s相似,但是以每步1秒的限制监视遵从性(此竞技场与最终测试的条件完全对应); largelarge_1s具有“增加的”设置的竞技场,以防万一有人想向他们伸出援手。

在GitHub的项目页面上查看竞技场列表

现在,对于每个竞技场,每个活动的决策都可以使用“实时”统计信息(表格第一列中的链接)。 统计信息以机器可读的JSON格式给出,参赛者可以从中轻松获取感兴趣的数据的表示形式。 该数据的关键是使用--id参数指定的客户端标识符的哈希。 每次连接到服务器时,此哈希测试系统都会向您显示。 对于每个参与者,给出了整个时间( all )和每一天(UTC)的已完成会话总数( sessions ),达成协议的数量( agreements )和总分数( score )。

测试系统更新


遵循GitHub上的更新历史记录 :我们会定期纠正测试系统中参与者发现的缺陷。 定期做git pull

官方聊天


为了讨论比赛,在电报中创建了一个频道: @hola_challenge_haggling

Source: https://habr.com/ru/post/zh-CN415467/


All Articles