ICFPC
бред =/
у кого какие успехи-то?
У меня пока работающий интерпретатор фабрик, входной поток сервера и ключ. Фабрики для ключа пока нет.
та же фигня(
Неким подобием генетики (без скрещивания) получил с десяток фабрик, дающих ключ, отличающийся от нужного на 1.
Опа. Пока писал, нашлось топливо
Как им вопросы задавать?
А зависимость между структурой машины и ее тернарным кодом никто не просёк?
Желатьно .NET
команда OLNS (only luck, no skill)
А ниче так у вас удача
150,469 | OLNS |
но особого профита не получится, т.к. сервер очень загружен и долго обрабатывает запрос.
поставил на ночь брутфорсить топливо к 219й (я правильно понимаю, что для неё фабрика топлива - есть всё что угодно, что выдает на входе сервера выход равный выходу фабрики-примера?)
Я, кстати, не понял, как вообще можно определить вход сервера после первых 17 символов.
Вроде бы он не зациклен и не выдаёт нули.
Чёртов сервер тормозит как не знаю что.
а задача все-таки крутая
Но я с основного не могу скачать машины.
UPD. послал им запрос
По состоянию на сейчас есть:
- префикс
- интерпретатор и синтезатор (по коду топлива) фабрики
- кодировка машин и топлива
- 4 машины
- 104 подобранных топлива
Пожалуй, мы только что завершили выступление (исключительно) из-за тормозов серевера. В течение последних 2 часов безуспешно пытались запостить топливо еще примерно для 50 разобранных машин.
Если будет не лень, то завтра еще поборемся с задачей автоматического синтеза топлива по коду машины.
- префикс топлива
- первые 17 символов ввода на сервере (остальные не знаю, вроде 0 и зацикливание не подходят)
- интерпретатор и, по-видимому, отличный синтезатор фабрик по коду топлива
- 66 топлив
Нет:
- кодировки машин и топлива
- машин
Я упорно пытаюсь засабмитить свежесгенерированные фабрики топлива
БТВ, у меня одного добавляется какая-то фигня к постам?гяT·@U gяЇю7юiю–я
я правильно понимаю, что для неё фабрика топлива - есть всё что угодно, что выдает на входе сервера выход равный выходу фабрики-примера?чота у меня херня получается. я генератор фабрик таки дописал, есть фабрика для которой префикс совпадает, но оно один фик ругается
upd: я идиот : ) неправильно понял понятие ключа. засобмител первое топливо!
Вчера получил фабрику для префикса в 6 гейтов, а также топливо для примитивной машины (62 гейта ). Засабмитил вручную для пары десятков, потом сервер стал адски тормозить, потом у меня кончилось электричество и интернет. Сейчас только доделал автосабмитилку, а перед ней собиралку кодов всех машин.
Оставил на ночь генератор рандомных топлив, он за 6 часов придумал 15-ти элементный генератор для однотанковых машин. Расстроен, ибо пока я писал генератор и матерился на неработающий сервер, кто-нить мог разобраться с машинами и топливом. Возможно стоило это делать сразу.
Меняю фабрику длины 15, подходящую к двум сотням машин на метод генерации рабочих машин того же вида (к которым подошла бы эта фабрика, вроде любая однотанковая)
solved 7 / current 8 / total 338
и эти 338 я получил 15 минут назад. А до этого было очень мило, выкачивается полсотни машинок, обработка машинки раз в 3-4 секунды, из них от 30% - 60% решаются (95% ближе к концу, когда чуваки обезумели я знай себе сижу, запускаю скрипт, выкачивающий машины, запускаю солвер, выполняю
>git add . && git commit -m "MORE MACHINES FOR THE MACHINE GOD" && git push, повторяю с пункта один, пия пиво и делясь прикольной статистикой с чуваками по аське. Например,
solved 26 / current 26 / total 26
finally solved 26 / 26
{<function solve_brute_force at 0x05BC8030>: 21,
<function solve_LP at 0x085B6E30>: 4,
<function solve_monte_carlo_size2 at 0x085B6EF0>: 1}
Найс!
Вообще совершенно прекрасный контест получился. Мне весьма по нраву. Только вот интересно, подкинут ли нас наши 1857 (на текущий момент) зомбей хотя бы на 11 место, к концу-то?
Алсо, команда TBD передаёт привет командам SzM, THIRTEEN и jabber.ru на всякий случай.
Кстати, пока писал, серверу что-то полегчало, уже "solved 54 / current 63 / total 338". Прекольно.
Алсо, какой всё-таки длительный и мощный интеллектуальный оргазм я испытал, когда наконец начал просекать их тернарный формат, и, типа, потихоньку переходил от "ну и зачем они сделали три разных репрезентации числа?" через "ох, нет, это же одна и та же, только префикс разный" к "это всё одно и то же. Вообще всё. Целиком. Парсер состоит из трёх функций по пять строк каждая. Потому что всё одно и то же и состоит из одного и того же. Рекурсивно. Я никогда не видел ничего более красивого, they should've sent a poet".
EDIT: Oh well.
Rank: 12
Score: 1265.962
Solved: 1925
Submitted: 72
Also, nice final touch:
35 22022022011022010022022010112201110
136 gates
submitting:
login ok
========== Server fail ===========
Traceback (most recent call last):
File "C:\Programming\ICFPC\2010\icfpc2010-tbd\simulator\src\complete_solver.py", line 212, in <module>
print submit_fuel(car_no, result, br=browser)
File "C:\Programming\ICFPC\2010\icfpc2010-tbd\simulator\src\submit_fuel.py", line 131, in submit_fuel
assert False, result
AssertionError: the contest is already finished
Rank: 12
Забыл про 5 непоказанных?
У меня в одиночку получилось скромно:
score: 75.949
others solved: 402
own cars submitted: 0
Композер и парсер их ОХУЕННЕЙШЕГО формата (ок, я понимаю, my judgement is clouded by the fact that I've spent like 14 hours staring at it before it began unfolding in all its elegant beauty)
http://github.com/cail/icfpc2010-tbd/blob/master/simulator/s...
http://github.com/cail/icfpc2010-tbd/blob/master/simulator/s...
Ну и про формат фабрик. Если тернарный формат был для меня восхитительным открытием, то с форматом фабрик было вот что: вначале
Алсо её можно нечеловечески улучшить, если генерировать в том числе пересекающиеся соединения и использовать динамическое программирование. Ну то есть раза в полтора-два. Я видел существенно более крутые результаты, порой с меньшим количеством нод чем нужно генерить битов.
Вообще честно говоря почти самое лучшее ICFPC эва, после Эндо. Я давно так не развлекался. И во всей своей фрустрации повинен только я, и я попытаюсь больше себе такого не причинять: записывать абсолютно всё, что я делаю когда что-то исследую (а не тупить с одним и тем же вводом раз семь в разные моменты чётче мыслить, рассказывать людям про то, что я исследую, чтобы самому лучше понять и чтобы исследовать вместе, не терять контакта с этими людьми, больше кодить, меньше депрессировать и отвлекаться, запускать их код, заставлять их запускать мой код, ну и так далее. Если бы я всё это делал, у нас была бы машина днём субботы.
А сама задача офигенная. А, вот ещё что меня немножко напрягло: когда они говорили про свой универсальный тернарный формат, я как бы подумал, что я получаю экземпляр универсального формата, что наводило меня на всякие мысли. А на самом деле я получал экземпляр статически типизированного формата, в котором RTTI уже не было. Могли бы и пригладить формулировки.
Специально чтоб такие как вы не смогли подобрать наши машины последние были сделаны из двух частей, 3 бака под большое простое топливо (диагональная матрица, элементы > 2^64 а вторая - перестановки какие-то (раскуроченная 19991 машина) Первые партии, либо простые, либо перестановочные, были мнгновенно решены конкурентами Жаль, стали так поздно их добавлять...
К недостаткам у оргов я бы отнёс геморрой с отправкой заданий. Если рассчитывали на то что будут скриптами заливать - сделали бы HTTP Basic Auth и не геморроились бы с сессиями всякими. То есть заливалка на курле оказалась простой, но осадок остался
ЗЫ Как-то в этом году было особенно стыдно за МГУ Хотя shurick был велик и фактически в одиночку большую часть времени ваял.
ЗЗЫ "В упорной борьбе мы вырвали очко у jabber-ru". То есть по состоянию на 15:59 они были перед нами
а где таблицу результатов участников смотеть?
http://icfpcontest.org/icfp10/score/teamAll
Правда, там мест не проставлено
Вот первые 50 с местами
На сцайте Правда, там мест не проставлено
Вот первые 50 с местами
1 ?
2 ?
3 ?
4 ?
5 ?
6 3.548,266 joho
7 3.317,292 HITOCry
8 3.246,312 Celestial Dire Badger
9 3.233,006 perpetuum_mobile
10 3.047,350 Fail0verFlow
11 2.657,573 ocamlriders
12 2.506,430 The Cat is #1!
13 2.500,582 6-11
14 1.947,789 eger a marson
15 1.672,753 SnakeTeam
16 1.667,446 vorpal
17 1.323,462 shinh2
18 1.313,209 TBD
19 1.231,108 thiscodeismade
20 1.197,381 SzM
21 1.164,132 jabber-ru
22 1.047,337 hack-the-loop
23 962,511 FiKdM
24 955,969 kuma-
25 927,985 solor6
26 910,441 [mkotha]
27 795,314 oh!tomaton
28 702,100 KoKaml
29 696,437 irori
30 686,192 THIRTEEN
31 683,889 Futamura Rejection
32 681,366 emoken
33 661,636 buteforce
34 653,827 codingmonkeys
35 644,811 Side Effects May Include...
36 628,107 The Invisible Imp
37 581,778 cashto
38 549,801 Tapani
39 536,038 ural_nerds
40 506,417 nbu
41 499,087 Death by Coffee
42 457,425 clfp
43 413,675 pluk
44 389,850 The Usual Suspects
45 377,739 ube
46 368,938 riesz
47 365,636 zng
48 338,671 blK
49 314,099 Higher Order Of Zeuxis
50 281,710 towerDefence
Специально чтоб такие как вы не смогли подобрать наши машины последние были сделаны из двух частей, 3 бака под большое простое топливо (диагональная матрица, элементы > 2^64 а вторая - перестановки какие-то (раскуроченная 19991 машина) Первые партии, либо простые, либо перестановочные, были мнгновенно решены конкурентами Жаль, стали так поздно их добавлять...А 172714 из этой же серии была?
3 бака под большое простое топливо (диагональная матрица, элементы > 2^64 а вторая - перестановки какие-то (раскуроченная 19991 машина)
ггг. Я в этом не понимаю вообще ничего =)
Что утверждает меня в мысли о том, что наша "победа" (над вами) обязана в дико большой степени streamlined процессу вытаскивания новых машин и автоматическому сабмиту решений для простых, которых мы могли поломать. All hail the new Perl, name's Python. Алсо очень важно то, что я лично переписал наш скраппер чтобы он был устойчив к падениям и работал сам по себе, без дополнительных настроек.
Ох кстати, уж не ваши ли машинки доставили мне анальную боль когда они оказывались достаточно сложными, чтобы не попасть под брутфорс или монте-карло, достаточно простыми, чтобы триггернуть вызов glpk, и достаточно сложными, чтобы его завесить нахуй? Там точно какие-то нехорошие люди специально заточенные под это машины начали сабмитить где-то в два по Москве, плюс-минус. Хорошо что у меня был второй монитор с открытым в нём таскменеджером.
Может быть часов через восемь Влад проснётся и расскажет как он сгенерил наши 72 машинки (которые мы не умеем решать вообще, но он генерил их от решения).
> сделали бы HTTP Basic Auth
Я всё про оргов понял, когда посмотрел в сорцы какой-то страницы:
function readCookie(name) {
var nameEQ = name + '=';
var ca = document.cookie.split(';');
for(var i=0;i < ca.length;i++) {
var c = ca[i];
while (c.charAt(0)==' ') c = c.substring(1,c.length);
if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
}
return null;
}
раскуроченная 19991 машинаА у нас к ней топливо было еще вчера вечером
Могу даже его код написать, кому интересно.
P.S. Видимо знаменитая машина, раз не мы одни обратили внимание
Я вносил посильный вклад в деятельность команды thiscodeismade. Утром обнаружилось, что все, на что у меня остается сил — это посмотреть какую-нибудь сложную машину, решить ее и отдать ботам на сабмиты новый паттерн топлива.
Я стал выбирать машину посложнее. Команда SzM на тот момент показалась мне очень интересной: ведь это похоже на "Стыдно за МГУ". Выбрал их машину 172714 и стал смотреть. Через некоторое время понял, что прямолинейное lp такое не решит, но можно сделать хитрый финт и генерировать топлива произвольным образом для такого класса машин. Сгенерировал штук шесть таких топлив и боты стали их прокручивать. Топлива порешили штук 50 - 60 новых машинок.
И вот теперь смешная часть: решая машины SzM мы немного ускорялись, видимо, немного замедляя SzM. В итоге разрыв в 34 очка и они нас не сделали
Если это ваша сложная машина, то я только что понял одну смешную вещь.Не, сложная она составлена из двух частей. Первая сделана глядя на 9748, немного усиленная только. Там решения вида 2^k, 2, 2^n. Но она элементарно подбирается любым LP методом или еще чем.
Вторая - 19991, простейшая машина с одним чамбером но с недиагональным решением (3 компоненты воздуха).
Сначала мы залили несколько первого вида и несколько второго. Оказалось что их все подобрали.
Поэтому последние 30 были сборками из этих двух. Их долго не подбирали, но сейчас в итоговом списке вижу что кто-то еще кроме нас их сделал (вы?).
ЗЫ Сложная - не в смысле "ппц какая сложная", а в смысле композиция
Ох кстати, уж не ваши ли машинки доставили мне анальную боль когда они оказывались достаточно сложными, чтобы не попасть под брутфорс или монте-карло, достаточно простыми, чтобы триггернуть вызов glpk, и достаточно сложными, чтобы его завесить нахуй? Там точно какие-то нехорошие люди специально заточенные под это машины начали сабмитить где-то в два по Москве, плюс-минус. Хорошо что у меня был второй монитор с открытым в нём таскменеджером.Может и мы, время подходит. Действительно, я поскольку почти асилил сделать решение через LP более ли менее начинал понимать какие машины на халяву им решаются, а какие - нет.
Мы "continuous integration" сделали практически только сегодня утром. До этого было как-то всё совсем на коленке и коряво. Но было уже достаточно поздно. Еще наверно мы слишком поздно начали заливать машины. Собственно мне честно говоря даже в голову не приходило что надо будет писать ботов заливающих.
Ну и полностью потеряли первый день из-за моей дибильной ошибки в интерпретации схемы гейтов/проводов.
Видимо знаменитая машина, раз не мы одни обратили вниманиеОна труъ!
Простая (один чамбер) и маленькая, но при этом сложная (некоммутативное умножение)
На счет любого LP не уверен, потом подумаю. С LP-решением у меня были траблы, так как фабрика получалась большой, хотя метод построения фабрики давал не более 2N нод на последовательность длины N. Пришлось придумывать более экономное решение.
http://github.com/cail/icfpc2010-tbd/
Уже как минимум две команды признались, чтоспи почерпнули инфу из этого открытого источника. Надо было придумать менее заметное название.
> Уже как минимум две команды признались, что
Оставить комментарий
karkar
Начинается сегодня в 12:00 UTC.http://www.icfpcontest.org/2010/
На всякий случай напомню.