ICFPC 2019

    •     icfpc, programming

В прошлом году отчёт об ICFP Programming Contest закончился словами:

публиковать отчёты нужно сразу, по горячим следам, иначе ничего, кроме хронологии, в них не попадёт.

Но акразия не дремлет. Контест прошёл в августе, сейчас декабрь. Время притупило эмоции и стёрло из памяти детали; захватывающего, передающего дух соревнования текста уже не получится. Даже хронологию восстановить будет проблематично.

Но не отчитаться я тоже не могу. За последние шесть лет ICFPC превратился для меня из интересного эксперимента в одно из главных событий года; я жду его, как в детстве ждал зимних праздников.

Поэтому буду очень краток; гораздо подробнее можете почитать в отчёте ForNeVeR-а.

Codingteam представляли уже знакомые вам товарищи: Akon32, ForNeVeR, Hagane, portnov и я. Год нечётный, поэтому писали на Scala. Сперва испугались условий задачи — авторы рискнули сделать сиквел к довольно скучной задаче 2017-го года; но вышло не так уж плохо.

Как и в прошлом году, мы писали программы для неких ботов, заставляя их как можно быстрее покрыть все клетки карты. Конечно же, боты были не просто точками, а имели определённую форму и могли поворачиваться. В течение соревнования появились возможности телепортироваться, клонировать ботов и даже майнить местные лямбда-коины. Мы, конечно же, не поспевали за всеми этими штуками, и в итоге реализовали только минимум, покрывающий первую версию задачи.

Главным событием контеста стала реализация A*. У меня с этим алгоритмом целая история: ещё в универе, в рамках одного из курсов, я должен был дописать статью в Википедии про D* — модификацию A*, способную менять уже принятые решения по мере получения новой информации. Не срослось (снова прокрастинация!). В рамках ICFPC я ворчал про A* ещё в 2015-м, но сначала его всё не удавалось нормально реализовать, а потом — не выходило затюнить под задачу. И вот в 2019-м звёзды наконец сошлись. Ну, почти: вышел скорее поиск в глубину, чем полноценный A*, но это все равно лучше, чем обычно :)

Итог: мы 88-е из 194-х (145 из которых заработали хотя бы один бал). Средненько, но примерно так мы обычно и выступаем. Посмотрим, чего удастся достичь в следующем году.

Drop me a line! (wonder where’s the comments form?)