Pull to refresh
0

Конкурс по программированию: Торговля (объявления)

Reading time 2 min
Views 3.5K
Объявления для участников конкурса по программированию.

Порядок окончательного тестирования


Изначально мы стремились к тому, чтобы провести турнир по принципу «каждый с каждым». Однако несколько участников заявили о своём намерении подать на конкурс множество слабых решений-«спойлеров», против которых основное решение участника хорошо играет, или же высказали опасения, что так поступят другие. Такие действия явно запрещены правилами, но даже если правила так или иначе обойти, это противоречит духу конкурса. Это соревнование о том, кто лучше напишет одну программу, а не кто прогнёт под себя «ландшафт», закачав больше «спойлеров».


Хотя мы можем и будем применять различные методы для выявления и дисквалификации «спойлеров», всегда остаётся вероятность, что мы чего-то не выявим. Нам хотелось бы, чтобы призёрами конкурса стали те, кто лучше придумывает и программирует алгоритмы, а не те, кто изобретательнее обходит правила.

Поэтому мы приняли решение проводить окончательное тестирование в два этапа. На квалификационном этапе для N случайно выбранных затравочных значений (seeds) будет проведён турнир «каждый с каждым», причём пара (A, B) считается отличной от (B, A). Таким образом, каждая пара (и в каждом порядке) будет запущена на каждом затравочном значении. Итогом квалификационного этапа станет список участников, расположенных по убыванию суммы набранных очков (именно суммы очков, а не числа «побед»).

Затем K лучших участников из списка выйдут в финал, где между ними будет проведён дополнительный турнир на M других случайно выбранных затравочных значениях. Финальные позиции между этими K участниками будут определены исключительно суммой очков, набранных ими в сеансах на N+M затравочных значениях между собой, без учёта сеансов с участием решений, не прошедших в финал.

С одной стороны, это позволит более тщательно протестировать узкий круг решений, претендующих на призовые места, а с другой — лишит поддержки «спойлеров» решения, рассчитывающие на неё.

Конкретные значения N, M и K будут объявлены позже, так как они зависят от числа решений, которые отправят нам участники.

Арены для онлайн-переговоров


Мы создали несколько новых арен: standard_1s подобна standard, но следит за соблюдением лимита в 1 секунду на ход (эта арена в точности соответствует условиям окончательного тестирования); large и large_1s — арены с «увеличенными» настройками на случай, если кто-нибудь захочет попробовать на них свои силы.

Смотрите список арен на странице проекта на GitHub.

Для каждой арены теперь доступна «живая» статистика по каждому выступавшему на ней решению (ссылки в первом столбце таблицы). Статистика приведена в машинно-читаемом формате JSON, из которого участникам конкурса не составит труда получить то представление данных, которое их интересует. Ключом в этих данных является хэш идентификатора клиента, указанного с помощью параметра --id. Этот хэш тестовая система показывает вам при каждом подключении к серверу. Для каждого участника приводятся общее число завершённых сеансов (sessions), число достигнутых соглашений (agreements) и сумма набранных очков (score) за всё время (all) и за каждые отдельные сутки (UTC).

Обновления тестовой системы


Следите за историей обновлений на GitHub: мы регулярно исправляем найденные участниками недостатки в тестовой системе. Регулярно делайте git pull!

Официальный чат


Для обсуждения конкурса создан канал в Telegram: @hola_challenge_haggling.
Tags:
Hubs:
+4
Comments 11
Comments Comments 11

Articles

Information

Website
hola.org
Registered
Employees
11–30 employees
Location
Израиль