Здравствуйте, Mirrorer, Вы писали:
M>Здравствуйте, D. Mon, Вы писали:
DM>>Отчеты:
Опишу как принимал участие:
В прошлые годы я писал в одиночку, в этом году первый раз сманил товарища на участие.
Прочитав задание, решили что он делает умный алгоритм движения ровера на основе вариационного исчисления, а я пишу парсер, и на простых алгоритме отлаживаю общение с сервером:
— (1) движение к базе по прямой игнорируя всё и вся (ну т.е. в ближайший кратер по пути к базе)
— (2) огибание кратеров и валунов
— (3) как-нибудь ускорить это движение
Писалось всё на F#. Парсер заработал сразу. Движение к базе заработало, когда я узнал от него, что asin/acos функции многозначные К этому моменту до окончания приёма решений в lighting division осталось 40 минут. На hubfs.net мне уже на пальцах объяснили, как заставить работать под моно, так что добавив обработку аргументов командной строки, проверил в вмвари, что оно работает, запаковал и послал. И наступил на грабли с замечательно твёрдым черенком -- добавив чтение имени хоста и порта с командной строки, я забыл использовать их при открытии сокета
Огибание валунов и кратеров проблем не доставило. К пункту (3) подошёл формально -- выделил случаи, когда явно можно ускоряться и тормозить в два раза быстрее, и стал посылать две команды серверу вместо одной (стало добираться до базы на 10% быстрей).
Был уже вечер воскресенья, и стало ясно, что продвинутый AI не заработает -- не успеваем.
В таком виде и отправили решение в понедельник на контест.
В общей сложности получилось ~300 строк кода: здесь
Я тут на днях решил потренироваться и реализовал на окамле транслятор днк->рнк из прошлогоднего соревнования. По сравнению с моим прошлогодним решением на С++, вариант на OCaml в два раза короче по числу строк, потребляет меньше памяти и работает почти в 10 раз быстрее (54000 итераций в секунду на одном 2GHz ядре). Вот он: http://stuff.thedeemon.com/endo_ocaml.zip
Из встреченных неудобств — ограничения 32-битной версии окамла на длину строк (пришлось делать надстройку над bigarray) и размер родных int'ов (они на 1 бит меньше обычного, из-за чего на self check один пункт не проходил, пришлось местами юзать int64).
Некоторые фичи использовал первый раз, поэтому времени убил довольно много — 8 часов на первоначальный вариант с копированием строк (он был в 4 раза быстрее аналогичного на С++) и еще часов 8 на вариант с хранением днк в виде дерева. Впрочем, на С++ написание заняло почти столько же времени.
Из забавного: оказалось, можно увеличить скорость проги в 6 раз просто выводя номер итерации не каждый раз, а пореже. Т.е. вывод на консоль офигенно медленный (в висте, по крайней мере).
Здравствуйте, konsoletyper, Вы писали:
K>А ещё эти гады отказываются делать сервер под Windows! Ну и как мне что-то запускать и тестировать? У меня LiveCD не запускается, под Linux (я вообще под ним девелопить не могу) сервер не запускается. Что делать, непонятно.
Один из вариантов — забить. ICFP этого года, к сожалению, не представляет из себя никакой ценности и отличается от других подобных соревнований только большим геморроем с тестированием решения и передачей данных по сети. Я, если честно, сильно разочарован условием и качеством организации.
Здравствуйте, D. Mon, Вы писали:
DM>Точнее, внешние хосты резолвятся, а localhost и Knoppix не находятся..
Надо добавить в /etc/hosts
192.168.12.128 knoppix
#если используете VMWare и биндите интерфейс, то и это
192.168.12.1 server
и если, опять таки сидите в VMWare то имеет смысл в /etc/resolv.conf
первой строчкой вставить
order hosts,dns
Здравствуйте, Mirrorer, Вы писали:
M>Стала известна дата проведения сабжа M>ICFP 2008 Programming Contest -- Dates: July 11, 2008 -- July 14, 2008 M>официальный сайт
M>К сожалению больше информации нет
Здравствуйте, thesz, Вы писали:
TBG>>>А кто-нибудь отсюда собирается участвовать? K>>Я собираюсь. Только вот ещё с выбором языка не определился.
T>C#, однозначно. Либо Nemerle.
T>Ни в коем случае нельзя применять Хаскель.
Выбирать для подобных мероприятий надо тот язык, который лучше знаешь . На нем быстрее получится . Ну там, пальцы в кнопках путаться не будут, от задачи отвлекать.
Здравствуйте, konsoletyper, Вы писали:
K>Здравствуйте, ecinunice, Вы писали:
E>>А можно поинтересоваться между чем колеблется выбор?
K>Haskell | Nemerle | C#
Здравствуйте, thesz, Вы писали:
TBG>>>А кто-нибудь отсюда собирается участвовать? K>>Я собираюсь. Только вот ещё с выбором языка не определился.
T>C#, однозначно. Либо Nemerle.
T>Ни в коем случае нельзя применять Хаскель.
Это тонкий юмор или теоретически обоснованное и практически апробированное решение?
Здравствуйте, Mirrorer, Вы писали:
M>Стала известна дата проведения сабжа M>ICFP 2008 Programming Contest -- Dates: July 11, 2008 -- July 14, 2008 M>официальный сайт
M>К сожалению больше информации нет
В Харькове собирается команда на ICFP 2008 contest.
Есть квартира (ул. Новгородская, тихий центр), собрались уже 2 человека 8-)
Есть еще 2 места.
Компы, интернет, пельмени, все удобства — все 72 часа.
Собираем команду!
Язык программирования любой (уже: Java, немного С#).
Желательно, чтобы участник ознакомился со всеми материалами http://users.livejournal.com/_adept_/tag/icfpc ,
проникся, не испугался, соразмерил, загорелся и затем не убежал
в середине процесса (понедельник — рабочий день).
Хорошо бы еще и немножко попробовал задание за прошлый год (кстати: это уже само по себе fun)
Здравствуйте, avb.kharkov, Вы писали:
AK>Здравствуйте, Mirrorer, Вы писали:
M>>Стала известна дата проведения сабжа M>>ICFP 2008 Programming Contest -- Dates: July 11, 2008 -- July 14, 2008 M>>официальный сайт
А где и как зарегистрироваться для участия в соревновании? Я новичек, но почитал о прошлых соревнованиях — понравилось
Re[3]: ICFP 2008
От:
Аноним
Дата:
02.07.08 12:29
Оценка:
Здравствуйте, prisoner, Вы писали:
P>Здравствуйте, avb.kharkov, Вы писали:
AK>>Здравствуйте, Mirrorer, Вы писали:
M>>>Стала известна дата проведения сабжа M>>>ICFP 2008 Programming Contest -- Dates: July 11, 2008 -- July 14, 2008 M>>>официальный сайт
P>А где и как зарегистрироваться для участия в соревновании? Я новичек, но почитал о прошлых соревнованиях — понравилось
На официальном сайте можно регистрироваться до последней минуты (или часа?) соревнования. Поэтому,
я думаю, на сайт надо идти уже с каким-то результатом.
Здравствуйте, konsoletyper, Вы писали:
K>Здравствуйте, ecinunice, Вы писали:
E>>А можно поинтересоваться между чем колеблется выбор?
K>Haskell | Nemerle | C#
В официальных правилах (http://www.icfpcontest.org/rules.html) сказано, что программа должна компилироваться на их LiveCD, который включает ограниченное количество языков и непонятно каких библиотек.
Здравствуйте, alexeiz, Вы писали:
A>В официальных правилах (http://www.icfpcontest.org/rules.html) сказано, что программа должна компилироваться на их LiveCD, который включает ограниченное количество языков и непонятно каких библиотек.
Там сказано, что если вы поскорее сообщите о выборе языка, которого нет в их списке, а также где взять и как заюзать его транслятор, то они постараются посмотреть на это дело, и может быть добавят его в список... Только надо поторопиться в этом плане...
Здравствуйте, geniepro, Вы писали:
G>Там сказано, что если вы поскорее сообщите о выборе языка, которого нет в их списке, а также где взять и как заюзать его транслятор, то они постараются посмотреть на это дело, и может быть добавят его в список... Только надо поторопиться в этом плане...
Так же можно отправлять им исполнимые файлы со всеми нужными им библиотеками...
To keep the contest fair and fun for everyone, team size is limited to 5 (five) members. There are no other restrictions on who may be a contestant. You may discuss the problem with members of teams other than your own, but the solution your team submits must be solely the work of its own members.
Что значит "You may discuss the problem with members of teams other than your own"? Это значит, что можно обсуждать со другими обсуждать алгоритмы и методы решения, или это касается только самого условия, т.е. понравилось/не понравилось, неточности в условии, и т.д.?
Я понимаю, что обсуждать можно все. Ибо посланные варианты не будут запущены до окончания конкурса (см. faq), а потом уже, похоже, будут соревноваться между собой, как в 2005-м. Поэтому разрешить обсуждать стратегии даже хорошо — сами стратегии будут интересней. Рекомендую посмотреть отчет по конкурсу 2005, там хорошие соображения приводились.
Здравствуйте, Димчанский, Вы писали:
Д>С другой стороны, нафиг он нужен? Пишешь все на чём хочешь и отсылаешь в бинарном коде, приложив исходники.
Дык, проблема в том, что это всё должно работать именно в условиях Live CD. А то вдруг у них не окажется каких-то либ, или что-то не той версии, или что-то заглючит?
Здравствуйте, konsoletyper, Вы писали:
K>Дык, проблема в том, что это всё должно работать именно в условиях Live CD. А то вдруг у них не окажется каких-то либ, или что-то не той версии, или что-то заглючит?
Здравствуйте, Димчанский, Вы писали:
K>>Дык, проблема в том, что это всё должно работать именно в условиях Live CD. А то вдруг у них не окажется каких-то либ, или что-то не той версии, или что-то заглючит?
Д>Так а в скомпиленном виде со всем чем?
Это что в скомпиленном виде? Ты уверен, что скомпиленный тобой файл целиком самодостаточен? Что он не грузит каких-то dll-к (so-к)? Далеко не все компиляторы могут предоставить такую гарантию. Да и не все языки компилируются в нативный код. Например, для того же .NET в принципе нету нормального способа получить самодостаточный нативный exe-ник.
Здравствуйте, konsoletyper, Вы писали:
DM>>Итак, первое задание: заставить работать выложенный образ.
K>Самое интересное, что для меня уже это стало непосильной задачей. Не работает, зараза...
О чем и речь.
Я сначала попробовал в VirtualBox, там виснет при переходе в граф. режим. А вот в qemu работает. Только out-of-the-box qemu медленный довольно.
Здравствуйте, D. Mon, Вы писали:
DM>Я сначала попробовал в VirtualBox, там виснет при переходе в граф. режим. А вот в qemu работает. Только out-of-the-box qemu медленный довольно.
В виртуалбоксе, когда загрузилось менюшка, можно нажать таб для опций редактирования опций загрузки ядра и исправить параметр init на init=/bin/bash
Поимев таким образом рутовый доступ к системе
А ещё эти гады отказываются делать сервер под Windows! Ну и как мне что-то запускать и тестировать? У меня LiveCD не запускается, под Linux (я вообще под ним девелопить не могу) сервер не запускается. Что делать, непонятно.
Здравствуйте, konsoletyper, Вы писали:
K>А ещё эти гады отказываются делать сервер под Windows! Ну и как мне что-то запускать и тестировать? У меня LiveCD не запускается, под Linux (я вообще под ним девелопить не могу) сервер не запускается. Что делать, непонятно.
Здравствуйте, konsoletyper, Вы писали:
K> У меня LiveCD не запускается, под Linux (я вообще под ним девелопить не могу) сервер не запускается. Что делать, непонятно.
Подсказка как запустить ливЦД под виндой на VirtualBox
Здравствуйте, konsoletyper, Вы писали:
K>А ещё эти гады отказываются делать сервер под Windows! Ну и как мне что-то запускать и тестировать? У меня LiveCD не запускается, под Linux (я вообще под ним девелопить не могу) сервер не запускается. Что делать, непонятно.
У меня получилось запустить LiveCD под qemu под XP, но работает жутко медленно.
Здравствуйте, prisoner, Вы писали:
P>У меня получилось запустить LiveCD под qemu под XP, но работает жутко медленно.
Да, мой простой тест в qemu примерно в 10 раз медленнее, чем в VMWare. Остановился на последней.
Реализовал ручное управление марсоходом, на small-scatter.wrld даже человеку сложно за 30 секунд приехать. Зато марсиане оказались почти безвредны.
Оказалось, что достаточно просто можно организовать удалённую отладку сервера, через сеть, под VMWare (у меня 5.5.2). Если был бы хоть чуть-чуть линуксоидом, мне бы наверное это не казалось какой-то большой проблемой
Здравствуйте, D. Mon, Вы писали:
DM>Я сначала попробовал в VirtualBox, там виснет при переходе в граф. режим. А вот в qemu работает. Только out-of-the-box qemu медленный довольно.
В LiveCD 1.5 при загрузке в qemu и VMWare пишет, что не смог запустить avahi-daemon. В итоге DNS не работает, ни одно имя не резолвится.
Кто-нибудь наблюдал такой баг? Может, он в 1.6 исправлен?
Здравствуйте, D. Mon, Вы писали:
DM>В LiveCD 1.5 при загрузке в qemu и VMWare пишет, что не смог запустить avahi-daemon. В итоге DNS не работает, ни одно имя не резолвится. DM>Кто-нибудь наблюдал такой баг? Может, он в 1.6 исправлен?
Здравствуйте, konsoletyper, Вы писали:
K>Например, для того же .NET в принципе нету нормального способа получить самодостаточный нативный exe-ник.
Надо кодить на F# и указывать в ключах компиляции --standalone. Максимум тогда, что понадобится — это сам .NET Framework. А в LiveCD вроде шел уже C# под mono.
Пока только начинаю читать. Очень развеселило сообщение о проявлении ленивости в Хаскеле:
I had a bad feeling when we decided to use hGetContents early in the day, and I shouldn’t have ignored it. We got nailed exactly as I did three months ago when first starting the trading system I’m writing in Haskell; it got way too lazy, and never actually executed enough code to generate any output until the connection it was reading from was closed by the remote end. When we started trying to send commands, we discovered that we happily sat there sucking data and doing nothing else.
Здравствуйте, D. Mon, Вы писали:
DM>Вкратце: участвовал без ансамбля, писал на OCaml (решение ~330 строк), результат ездит аккуратно, но не слишком быстро.
А у нас быстро, но не очень аккуратно!
Ты молодец, отчёт супер! Риспект!
Здравствуйте, Mirrorer, Вы писали:
M>Стала известна дата проведения сабжа M>ICFP 2008 Programming Contest -- Dates: July 11, 2008 -- July 14, 2008 M>официальный сайт
M>К сожалению больше информации нет
P.S. Только оценок мне за чужой отчет не надо, тем более, что я в этом году забил на задачу, не заслужил.
Вообще, полностью согласен с тем, что ICFPC'06 (да и последующий ICFPC'07 в какой-то мере) поднял уровень соревнования до такого уровня, что оправдать надежды участников, которые ждут чего-то, отличающегося от десятков других соревнований, очень сложно. Что и подтвердилось
Здравствуйте, D. Mon, Вы писали:
DM>Я тут на днях решил потренироваться и реализовал на окамле транслятор днк->рнк из прошлогоднего соревнования. По сравнению с моим прошлогодним решением на С++, вариант на OCaml в два раза короче по числу строк, потребляет меньше памяти и работает почти в 10 раз быстрее (54000 итераций в секунду на одном 2GHz ядре). Вот он: DM>http://stuff.thedeemon.com/endo_ocaml.zip
Тут дело может быть в том что задача решается второй раз — и есть нарабтаные подходы. Возможно и на С++ второй раз получилась бы неменее ефективна реализация.
Здравствуйте, dushchak, Вы писали:
D> Возможно и на С++ второй раз получилась бы неменее ефективна реализация.
Там алгоритмы очень похожие были, разница в скорости в основном из-за работы с памятью — обычная куча vs. быстрый GC. Чтобы догнать по скорости пришлось бы свой хитрый менеджер памяти писать.
На первый взгляд предлагаемый в передаче робот было бы интересно попробовать для решения задачи олимпиады. А вот среди отчётов участников роботов на нейросетях не нашёл. Может я пропустил? Если да, подкиньте ссылку, пожалуйста.