11 авг2015
ICFPC-2015: Отчёт об участии (Ктулху фтагн!)
Начало
Собственно, началось всё довольно обыденно. За пару месяцев до начала списались, договорились участвовать бравые лисперы swizard, sectoid и grep-z. Заранее спланировали время, чтобы освободить ЭТИ дни на трёхсуточный марафон. Кровь бурлила, были настроены выигрывать. :)
Организаторы сразу начали нагнетать. Сначала в анонсе, затем в своём твиттере. Это и про восстание машин, и про квантовые комьпютеры. Да и вообще кучу всего. Уже предвкушал, предвкушал, потом появился странный твит: "R1 O0 P1 Q1 P1 O0 N0 N0 P1 R1 Q1 P1 O0 P1 Q1 R1 P1 N0 N0 Q1 S1 N1 T1 S1 R1 P1 R1 Q1 P1 O0 O0 P1 Q1 R1 P1 N0 N0". Я его не понял совсем, думал, что-то с кубитами. Затем про пчёл, затем про то, что то, что они видел - это вообще страх и ужас какой, да и лого было многообщеающим.
Но тут, если честно, они несколько разочаровали. Заданием оказался банальный тетрис, правада, в шестигранных сотах. Хекстрис, то бишь. Какой-то такой я играл несколько лет назад. Теперь нужно было научить и компьютер играть. Ну ещё и задача усложнялась тем, что из ходов нужно было подбирать некоторые слова, за которые начисляются дополнительные бонусы.
Картинка взята у какого-то участника. В общем, как и говорил, правила очень простые - двигать фигуры, расставлять, сжигать ряды, кодить всё это в дополнительные фразы. Вроде, если подумать, скукота. :) И тем обиднее, как плохо выступили.
Соревнования
К сожалению, на старте отвалился grep-z, извинившись за внезапно возникшие проблемы, зато добавился товарищ jtootf. Задания прочитали, всё просто, сразу напряглись, предполагая, что же будет в аддонах. Дополнительно ещё фразы были неизвестны, их предлагалось найти самим в произведениях Лавкрафта, да и в предоставленных медиа. Они, кстати, были на картах.
Ну, нацелились на лайтниг и молниеносно ворвались! Я уже не помню, кто что кодил, но swizard взял на себя основную работу, а мы проверяли, подсказывали, что-то пробовали дополнительное. Sectoid и jtootf, будучи более вовлечёнными в тему Ктулху, искали слова. Я с поиском фраз вообще не участвовал, ибо на этих соревнованиях про Ктулху услышал раз во второй, ну или, максимум, в третий.
Началось всё с ГСЧ. Видать, чтобы строго формализовать всю игру, орги определили алгоритм ГСЧ. По описаниям, он совпадал с системным, а вот по значениям не совпадал. Пришлось быстро налабать свой. Дополнительных проблем доставили соты, но их решили, перейдя на кубические координаты.
В общем, первый день кодили, кодили, кодили, кодили, кодили. Прям как девелоперс. При этом сделали карту, бинарь, переход из одной позиции в другую. Правда, алгоритм расположения был кривоват при поиске конечного места. В общем, к лайтнингу что-то уже было. Туповатое, правда. К лайтнингу сабмитим карты и! Огорчаемся. :( Где-то на картах даёт скор, где-то даёт лишь 0 очков. 0! Боль! Смотрим визуализацию и как печально, но некоторые элементы располагаются в начальной позиции не так, как описано в правилах. Бывают в жизни огорчения. Это находим минут за 5 до конца лайтнинг раунда. В общем, прошли мимо лайтнинга.
Далее добавляем к нашему алгоритму подбор места на основе оценки итогового состояния доски. Всё это работает, правда, медленно. Подбираем коэффициенты, пилим для этого генетический алгоритм, но что-то на него забиваем. Но вспоминаем почти под конец. :) Там же лихорадочно лепим подбор на основе выхода из начального положения рандомно куда-нибудь. Правда, ничего уже подобрать особо не успеваем, ищем фразы, добавляем ещё эвристику, но сабмитим наш старый вариант, потому что получая прирост на одних картах, при этом получаем заметный регресс на других, попутно перетирая пару карт с нулевым результатом. Итог - 57 место. Предварительно. Окончательные результаты в сентябре.
Зов Ктулху
На третий день соревнований я испытал проблемы с инетом. То же было и у swizard'а. Мы переключились на резервный канал. Затем за полчаса до конца соревнований я испытал проблемы и с резервным каналом, но переключился на ещё один резервный. Наверное, это Ктулху звал нас. Но мы не пошли. :)
Дополнительно
- хранилище исходных кодов;
- 1.25 млн решений, более 300 команд, более 800 участников;
- под конец сокрость сабмита солюшенов достигала 700 в минуту;
- порадовала команда диких башкирских магов (WILD BASHKORT MAGES);
Итого
Несмотря на простое задание, было очень весело. Ребята, с которыми я был в команде - вы супер, реально. Спасибо вам за участие. В общем, хорошо провёл эти три сутки, хотя в какие-то периоды можно было вставлять спички в глаза. :) Ну, надо готовиться и брать вершину в следующем году.
Источник
Метки: bazon, common lisp, icfpc, icfpc 2015, lisp, тетрис, события bazon
- /news/25-bazon-news/137-nasha-karta-dlya-duke-nukem-3d-generalskaya-dacha-v-masterskoj-steam
- /news/25-bazon-news/131-bazon-group-10-iyunya-2015-ispolnilos-15-let