dastapov: (new)
Организаторы выложили результаты

Моя скромная команда сползла с 19-го места на 22-е (все равно, я считаю, офигенно для этого подхода к решению).

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

Lightning round полностью вручную взял jabber.ru, как уже было, кажется, в 2007-м году.
dastapov: (new)
Предыдущие части : день первый, день второй.

На третий день (традиционно, в 10:00) я обнаружил, что сполз до 42 места (из около 200 активных участников). Какое-то время ушло на вытягивание новых задач и разглядывание того, как другие участники решают мои задачи. В 11:00 я вернулся к написанию солвера.Read more... )
dastapov: (new)
(предыдущая часть, следующая часть)

Первый день у меня закончился тем, что я пробовал сделать модель "бумаги", которую можно будет "гнуть", и потом извлекать из нее результаты сгибания в виде, пригодном для отправки на сервер в качестве решения.Read more... )
dastapov: (new)
(Это первая часть рассказа, а вот вторая и третья)

В этом году ICFPC был про оригами.

Вам дается контур сложенной из бумаги плоской фигуры (в виде координат точек) и вы должны ее сложить. Для тех, кто уже офигел и не знает, за что хвататься, дается дополнительная подсказка - еще одна "картинка", показывающая все ребра и складки в этом контуре -- представьте, что вы смотрите оригами "на просвет", однако при этом все точно совпадающие складки и ребра сливаются воедино. Организаторы называли это "контуром" и "скелетом". Еще про оригами известно то, что оно сложено из листа бумаги размером 1x1. Read more... )
dastapov: (new)
По такому поводу можно вылезти из спячки :)

Через два дня (в пятницу, 6 августа) начинается ICFPC-2016. В прошлом году у меня поучастовавть не получилось, предыдущие два были (по моему мнению) так себе. Посмотрим, что будет в этом году.

PS: если вдруг кто еще не знает, что такое ICFPC, можете почитать мои старые отчеты, начиная с этого, они все под тэгом icfpc.
dastapov: (new)
Во-первых, поздравляю человека и парохода jabber.ru с победой в lightning раунде.

Во-вторых, на этом месте мог бы быть отчет, но писать особо не о чем. В этом году я пробовал что-то сделать самостоятельно, но буквально сразу увидел (кажется, на IRC) слово SECD и в результате отвлекся на чтение книжки Хэндерсона "Functional Programming Application and Implementation", которой явно вдохновлялись организаторы. В результате я узнал много нового и интересного о том, как можно использовать camlp4, чтобы реализовать "компилятор" из сделанного тобой DSL в OCaml, а также о том, что такое SECD-машина (как она дана у Хэндерсона, а не урезанный вариант из задачи этого года).

После возни с полноценной SECD-машиной мотивация делать обкоцанную SECD-машину у меня как-то пропала, и я для себя на этом ICFPC-2014 закрыл. А что у вас?
dastapov: (new)
Сегодня начинается ICFP Contest, также известный как ICFPC.

В этом году я ни с кем не кооперировался, никак не готовился, и вообще собираюсь писать на ocaml :) А вы?

PS: если вдруг кто еще не знает, что такое ICFPC, можете почитать мои старые отчеты, начиная с этого, они все под тэгом icfpc.
dastapov: (new)
Если вдруг кто еще не знает, то в этом году ОНО будет с 25 по 28 июля. Кто собирается участвовать?
dastapov: (new)

Эпиграф



Нас было 7 человек. У нас было 20 модулей на хаскеле, приватный репозиторий на гитхабе, 6 веток в этом репозитории, ImplicitParams, MagicHash и UndecidableInstances в коде и одна highmem нода на амазоне, а также hangouts для общения, юнит-тесты, просто тесты, google docs для заметок и куча статей про SMT-солверы. Не то что бы мы это все использовали, но на ICFPC ты ищешь в инете всякую дурь и бывает трудно остановиться. Единственное что вызывало у меня опасение - это SMT-солверы. Нет ничего более беспомощного, безответственного и испорченного, чем человек, читающий статьи в ходе контеста. Но я знал, что рано или поздно мы подсядем и на эту дрянь.

Краткое содержание для тех, кому лень читать все



Наша команда называлась "(unmatched", и состояла она из меня, Жени [livejournal.com profile] jkff, Ромы ro-che.info, Вани [livejournal.com profile] _navi_, Саши [livejournal.com profile] sorhed, Макса (которого нет в ЖЖ) и еще одного Саши [livejournal.com profile] wizzard0.

Мы набрали 1301 из 1820 возможных, из них 457 в lightning round, т.е. в первые 24 часа (UPD: и, похоже, заняли там 10 место! Аааааа!). Мы заняли место между 11-м и 25-м, но еще не знаем, какое конкретно.

Мы писали на Haskell и вот наш репозиторий.

Спасибо моим соратникам - вы все молодцы и умницы! Традиционное спасибо моей жене [livejournal.com profile] yulanta за моральную и прочую поддержку :)

А теперь - длинная история про то, как дело было.Read more... )
dastapov: (Default)
Вот они, родимые.

Мы - на позорном 131 месте. Где-то за 20 минут до финиша, когда мои товарищи по команде вырубались после бессонной ночи, возник вопрос - какой же солвер сдавать в качестве финального?

У нас их было два - один реализовывал А* поверх А*, как описано вот тут, не умел бэктрекинга, шел только вперед и выводил части программы по мере достижения очередной лямбды.

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

На мелких картах второй тред успевал перебрать все (или почти все) и выбраться из практически любой ловушки. На больших же картах он рисковал со временем пожрать всю память и быть убитым OutOfMemory Killer-ом (который живет в ядре linux). Если бы это произошло, то мы бы на такой карте не набрали ничего. Осознание этой засады пришло слишком поздно, и сделать какой-то монитор/ограничитель мы уже не успевали.

Забоявшись out of memory, я убедил полусонных Женю и Ваню, что сдавать надо первый вариант. В результате мы вылетели в первом раунде.

Второй вариант набрал бы как минимум 7200 очков (я запускал его на оценочных картах с лимитом в 30 секунд, а за 150, думаю, он мог бы набрать и больше) и мы были бы где-то в районе 50-60 месте. Ну, как известно, если бы да кабы ... :) Мораль придумайте сами.

Посмотрим, что будет в следующем году.
dastapov: (Default)

Обязательное вступление: что это вообще такое?


Каждый год случается международная конференция ICFP - International Conference on Functional Programming. К этой конференции приурочен програмерский конкурс под названием ICFPC. Несмотря на название конференции, участвовать в контесте может любой желающий, и пользоваться можно любыми языками, не только функциональными, кроме того - участники могут объединяться в команды. ICFPC отличается от соревнований типа ACM и topcoder тем, что он менее "заточен" под какие-то конкретные языки или наборы навыков, а задачи в нем прикольные и позволяют получить удовольствие не только от победы, но и от участия.

Я стараюсь принимать участие во всех ICFPC, и о том, как это было в прошлые годы, можно почитать в этом журнале по тэгу icfpc.

Подготовка


В этом году я заранее вписал даты в календарик, взял на работе отгул, и договорился с Женей [livejournal.com profile] antilamer и Ваней [livejournal.com profile] _navi_ о том, что мы будем выступать одной командой и писать на Haskell.

Моя жена собиралась где-то в это же время поехать с детьми на историческую родину, и мы подгадали поездку так, что на время ICFPC я остался один-совсем-один. Если быть точным, за 4 часа до старта я был в аэропорту и провожал их на самолет, и вернулся домой за 5 минут до начала.

Подготовка, таким образом, свелась к заливанию ssh-ключей на bitbucket (где у нас был git-репозиторий) и обмену контактами с остальными участниками команды :)

Старт и условие

Read more... )

ICFPC-2012

2012-06-21 04:57 pm
dastapov: (Default)
А кто что себе думает про ICFPC-2012? Кто собирается участвовать? На чем писать? Я в этом году твердо намерен не пропустить мероприятие - кто хочет объединить усилия?

UPD: договорился с [livejournal.com profile] _navi_ и [livejournal.com profile] antilamer.
dastapov: (Default)
Отсюда: The ICFP Programming Contest dates have been announced. The contest will run from Friday 13 July 12:00 GMT to Monday 16 July 12:00 GMT.
dastapov: (Default)
Кстати, а кто из участников ICFPC-2010 был из Киева? Я знаю себя и [livejournal.com profile] murkt (уверен на 90%), а кто еще?
dastapov: (Default)
Ну-с, отчет-репортаж написан, теперь можно дать волю эмоциям :)

Что мне понравилось?Read more... )
dastapov: (Default)
Этот пост - о том, как мы строили машины, фабрики и гнали бензин на ICFPC-2010.

Кто еще не знает, что это такое - может пройти в сад почитать мой отчет об ICFPC-2006. Всех же остальных я не буду мучать долгими вступлениями и сразу перейду к сути.Read more... )
dastapov: (Default)
Я слоупок опять все пропустил: уже есть результаты ICFPC'09.Read more... )
dastapov: (Default)
Имя команды: li-monad (спасибо aleksey/jabber.ru за идею)
Состав: я, endless-world, [livejournal.com profile] iakovz, при участии blancus.
Итоговый бал: 2234.7171 (12 problems solved)

Поскольку scoreboard традиционно перестал обновляться за пару часов до окончания соревнования, мне сложно сказать, какое же место мы заняли в конце-концов. Если все остальные участники расслаблялись перед финальным свистком и ничего не делали, то это будет 59-е место.  Но скорее всего в расстановке сил перед самым финишем наверняка произошли существенные изменения, и я буду рад, если нас не "выдавят" хотя бы из первой сотни.

Читать в деталях )

ICFPC'09

2009-06-24 01:24 pm
dastapov: (Default)
Если вы, как и я, регулярно путаете июнь и июль, то знайте, что до ICFPC'09 остался вовсе не месяц, а всего два дня! :)

Сайт соревнования: http://icfpcontest.org

Обсуждение в jabber: конференция icfpc@conference.jabber.ru

Обсуждение в IRC: #icfp-contest на freenode
dastapov: (Default)
Сорока на хвосте принесла новость о соревновании для (русскоязычных) программистов, которое будет проводится с 5-го по 12-е марта.

Организаторы обещают фан на уровне ICFPC. Надеюсь, образца 2006-го года :)

Читаем и участвуем: http://stanfy.com.ua/contest/
dastapov: (Default)
Итак, организаторы выложили предварительные результаты ICFPC-2008. Победитель определялся серией "заездов", в каждом из которых выбывало какое-то количество участников, и организаторы выложили результаты первых семи подобных раундов.Read more... )
dastapov: (Default)
Под катом - немножко ссылок на ICFPC-шные делаRead more... )
dastapov: (Default)
Это окончание рассказа. Линки на начало и середину.

13 Jul 2008. Начало второго полного дня соревнований. До финиша - где-то 35 часов.

Утром тринадцатого числа наш марсоход мог быть укомплектован тремя безбашенными стратегиями локального управления разной степени расхлябаности, которые, тем не менее, умудрялись периодически доводить его до цели.Read more... )
dastapov: (Default)
Это вторая часть рассказа. Линк на начало.

12 Jul 2008.

Однако, я только и успел, что выписать определения сообщений, которые придется принимать от марсохода и передавать ему. Сразу после этого в jabber-е прорезался [livejournal.com profile] yvl, который двигает науку в области робототехники. Сам он по стечению обстоятельств в соревновании участия не принимал, но интересовался моим мнением о задаче.

У нас завязался увлекательный разговор, первые пятнадцать минут которого напоминали скорее монолог: [livejournal.com profile] yvl вещал, я записывал на листик неизвестные мне термины и понятия. В результате я вынес из нашего общения несколько ценных крупиц знаний:
1)Все могло бы быть и хужеRead more... )
dastapov: (Default)
Несколько дней тому назад закончился ICFPC'08, и, пока свежи воспоминания, я тороплюсь их записать.

Перво-наперво,
Результаты и впечатления

Результаты:
========
* Мы, скорее всего, попадем в верхние 50%. Мы явно не победим, и даже не приблизимся к десятке
* Мы получили фан
* Я получил кучу (без)полезных сведений о том, как осуществляется управление технологическими процессами, роботами и т.п.
* Я получил удовольствие от игры в замечательной русскоязычной команде

Что понравилось:
===========
* Мы начали готовится загодя, и со стартом соревнования почти не тормозили
* Мы старались по максиму использовать выбранные технические средства
* У нас было очень немного проблем с коммуникациями

Что не понравилось:
=============
* Задание и провтыки организаторов (хотя лично нас они и не коснулись)
* То, насколько сильно я забыл физику и тригонометрию
* То, что мы в какой-то момент все-таки попали в творческий кризис и разброд и шатание

А теперь - детали и подробности )
dastapov: (Default)
Ладно, это будет самое наираспоследнее китайское предупреждение: через 40 минут начинается ICFPC-2008.

Русскоязычная межкомандная болтовня идет в Jabber - icfpc@conference.jabber.ru, англоязычная - в IRC, #icfp-contest @ freenode.net . Вливайтесь :)
dastapov: (Default)
Завтра начинается ICFPC-2008!

И не говорите потом, что я не предупреждал.
dastapov: (Default)
Я уверен, что все желающие уже собирают команду и "расчищают" расписание, но все-таки ... Мало ли, может кто "не следит за полем"?
С радостью сообщаю, что недавно объявили дату проведения очередного ICFPC. В этом году оно пройдет 11-14 июля.Короткий ликбез под катом )

Хоть меня уже и зазывают мои англоговорящие коллеги по команде 2006 и 2007 годов, я все еще надеюсь в этом году поучаствовать в соревновании в составе русскоговорящей команды пишущей на чем-то интересном (). Например, anything but C/C++/Java with strong preference towards Haskell :)

Нет желающих поучаствовать? Заходите в jabber-конференцию haskell@conference.jabber.ru - пообщаемся, вдруг что-то и вырисуется.
dastapov: (Default)
Загадочный человек-легенда aleksey отличился не только тем, что на ICFPC-2006 здорово помог команде LazyBottoms, а в нынешнем году попал в top-15 под псевдонимом jabber-ru. Мало кто знает о том, что он также достиг невероятных успехов в приручении ежиков и горностаев написал несколько "мини-кодексов" с задачками, выдержанными в стиле и духе Cult of Bound Variable.

Это недоразумение надо в срочном порядке исправить. Качайте и решайте: piles и area. Для запуска потребуется Universal Machine образца ICFPC-2006.
dastapov: (Default)
Прошел год с тех пор, как я в составе команды Lazy Bottoms боролся за победу в ICFPC-2006. Победить нам не удалось, но мы заняли достаточно почетное 18 место (среди 360 команд), причем упорная борьба шла до самых последних минут и в течении последнего часов соревнования top 10 достаточно сильно изменялся.

В этом году наша команда собралась в несколько измененном и расширенном составе и выступила под старым названием. Результат, увы, оказался не столь впечатляющим - 56 место среди 860 команд, из которых 500 не сделали вообще ничего.

История в трех частях с прологом и эпилогом про то, как мы дошли до жизни такой )

Profile

dastapov: (Default)
Dmitry Astapov

July 2017

M T W T F S S
     12
3456789
1011 1213141516
17181920212223
24252627282930
31      

Syndicate

RSS Atom

Most Popular Tags

Page Summary

Style Credit

Expand Cut Tags

No cut tags