ICFPC

karkar

Начинается сегодня в 12:00 UTC.
http://www.icfpcontest.org/2010/
На всякий случай напомню.

fufa58

бред =/

fufa58

у кого какие успехи-то? :)

karkar

У меня пока работающий интерпретатор фабрик, входной поток сервера и ключ. Фабрики для ключа пока нет.

fufa58

та же фигня(

agaaaa

Собственно, +1.
Неким подобием генетики (без скрещивания) получил с десяток фабрик, дающих ключ, отличающийся от нужного на 1.

agaaaa

Опа. Пока писал, нашлось топливо :D

agaaaa

Как им вопросы задавать?

ramsit

А зависимость между структурой машины и ее тернарным кодом никто не просёк?
> Как им вопросы задавать?
на cjr их адрес почты пробегал, на сайте тоже вероятно есть.

agaaaa

Никто не хочет присоединиться к нашей тиме? А то появилась идея оправлять сгенерированные топлива на сервер программно, а не вручную, но никто из нас не имеет опыта подобного, а разбираться долго.
Желатьно .NET
команда OLNS (only luck, no skill)

ramsit

> (only luck, no skill)
А ниче так у вас удача :D





150,469OLNS

ramsit

lynx умеет POST. на opennet пробегала статья, как такие вещи lynxом делать.
но особого профита не получится, т.к. сервер очень загружен и долго обрабатывает запрос.

fufa58

что-то у меня как-то туго : (
поставил на ночь брутфорсить топливо к 219й (я правильно понимаю, что для неё фабрика топлива - есть всё что угодно, что выдает на входе сервера выход равный выходу фабрики-примера?)

agaaaa

Да.
Я, кстати, не понял, как вообще можно определить вход сервера после первых 17 символов.
Вроде бы он не зациклен и не выдаёт нули.

agaaaa

Чёртов сервер тормозит как не знаю что.

ramsit

они обещают скоро еще один поднять, только для проверки валидности. без логинов, коннектов к базе, шустрый короче.
а задача все-таки крутая

agaaaa

Я его юзаю уже, он не тормозит.
Но я с основного не могу скачать машины.
UPD. послал им запрос

daru

Участвуем вдвоём с другом (команда qwerty, хотя вроде бы мы, не подумав, украли чей-то бренд...).
По состоянию на сейчас есть:
- префикс
- интерпретатор и синтезатор (по коду топлива) фабрики
- кодировка машин и топлива
- 4 машины
- 104 подобранных топлива
Пожалуй, мы только что завершили выступление (исключительно) из-за тормозов серевера. В течение последних 2 часов безуспешно пытались запостить топливо еще примерно для 50 разобранных машин.
Если будет не лень, то завтра еще поборемся с задачей автоматического синтеза топлива по коду машины.

agaaaa

Для сравнения у нас есть:
- префикс топлива
- первые 17 символов ввода на сервере (остальные не знаю, вроде 0 и зацикливание не подходят)
- интерпретатор и, по-видимому, отличный синтезатор фабрик по коду топлива
- 66 топлив
Нет:
- кодировки машин и топлива
- машин
Я упорно пытаюсь засабмитить свежесгенерированные фабрики топлива
БТВ, у меня одного добавляется какая-то фигня к постам?гяT·@UgяЇю7юiю–я

fufa58

я правильно понимаю, что для неё фабрика топлива - есть всё что угодно, что выдает на входе сервера выход равный выходу фабрики-примера?
чота у меня херня получается. я генератор фабрик таки дописал, есть фабрика для которой префикс совпадает, но оно один фик ругается
upd: я идиот : ) неправильно понял понятие ключа. засобмител первое топливо!

karkar

Вчера получил фабрику для префикса в 6 гейтов, а также топливо для примитивной машины (62 гейта :( ). Засабмитил вручную для пары десятков, потом сервер стал адски тормозить, потом у меня кончилось электричество и интернет. Сейчас только доделал автосабмитилку, а перед ней собиралку кодов всех машин.

agaaaa

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

agaaaa

Меняю фабрику длины 15, подходящую к двум сотням машин на метод генерации рабочих машин того же вида (к которым подошла бы эта фабрика, вроде любая однотанковая) :)

bleyman

FEEDING FRENZY подошла к концу =)
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

karkar

Реквестирую подробный write-up!
 
Rank: 12

Забыл про 5 непоказанных?
У меня в одиночку получилось скромно:
score: 75.949
others solved: 402
own cars submitted: 0

bleyman

Алсо, если кому интересно:
Композер и парсер их ОХУЕННЕЙШЕГО формата (ок, я понимаю, 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 эва, после Эндо. Я давно так не развлекался. И во всей своей фрустрации повинен только я, и я попытаюсь больше себе такого не причинять: записывать абсолютно всё, что я делаю когда что-то исследую (а не тупить с одним и тем же вводом раз семь в разные моменты чётче мыслить, рассказывать людям про то, что я исследую, чтобы самому лучше понять и чтобы исследовать вместе, не терять контакта с этими людьми, больше кодить, меньше депрессировать и отвлекаться, запускать их код, заставлять их запускать мой код, ну и так далее. Если бы я всё это делал, у нас была бы машина днём субботы.

bleyman

Ох, единственное, за что можно поругать авторов — надо бы всё-таки ответственней немножко. 2.5 часовой даунтайм в начале контеста неприколен. Даунтаймы в процессе неприкольны. Внезапное ограничение длины топлива 1000 единиц — суки, вы понимаете, что вы ставите меня перед выбором 1) отключить логарифмический солвер вообще потратив 15 секунд (четыре машины уменьшить некоторые из его параметров (10 машин посмотреть как он вообще работает и вставить куда нужно ограничение на длину фьюэла (30+ машин). МНЕ НУЖНО РЕШАТЬ МАШИНЫ! МАШИНЫ МАШИНЫ МАШИНЫ!
А сама задача офигенная. А, вот ещё что меня немножко напрягло: когда они говорили про свой универсальный тернарный формат, я как бы подумал, что я получаю экземпляр универсального формата, что наводило меня на всякие мысли. А на самом деле я получал экземпляр статически типизированного формата, в котором RTTI уже не было. Могли бы и пригладить формулировки.

conv3rsje

Круто, а я glpk не асилил, сделал генератор кода, но что дальше с ним делать не понял, наверно уже тупняк начал наваливаться...
Специально чтоб такие как вы не смогли подобрать наши машины последние были сделаны из двух частей, 3 бака под большое простое топливо (диагональная матрица, элементы > 2^64 а вторая - перестановки какие-то (раскуроченная 19991 машина) :) Первые партии, либо простые, либо перестановочные, были мнгновенно решены конкурентами :( Жаль, стали так поздно их добавлять...
К недостаткам у оргов я бы отнёс геморрой с отправкой заданий. Если рассчитывали на то что будут скриптами заливать - сделали бы HTTP Basic Auth и не геморроились бы с сессиями всякими. То есть заливалка на курле оказалась простой, но осадок остался :)
ЗЫ Как-то в этом году было особенно стыдно за МГУ :) Хотя shurick был велик и фактически в одиночку большую часть времени ваял.
ЗЗЫ "В упорной борьбе мы вырвали очко у jabber-ru". То есть по состоянию на 15:59 они были перед нами :)

Makc500

а где таблицу результатов участников смотеть?

conv3rsje

На сцайте http://icfpcontest.org/icfp10/score/teamAll
Правда, там мест не проставлено
Вот первые 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

barbos

Специально чтоб такие как вы не смогли подобрать наши машины последние были сделаны из двух частей, 3 бака под большое простое топливо (диагональная матрица, элементы > 2^64 а вторая - перестановки какие-то (раскуроченная 19991 машина) :) Первые партии, либо простые, либо перестановочные, были мнгновенно решены конкурентами :( Жаль, стали так поздно их добавлять...
А 172714 из этой же серии была?

bleyman

3 бака под большое простое топливо (диагональная матрица, элементы > 2^64 а вторая - перестановки какие-то (раскуроченная 19991 машина)

ггг. Я в этом не понимаю вообще ничего =)
Что утверждает меня в мысли о том, что наша "победа" (над вами) обязана в дико большой степени streamlined процессу вытаскивания новых машин и автоматическому сабмиту решений для простых, которых мы могли поломать. All hail the new Perl, name's Python. Алсо очень важно то, что я лично переписал наш скраппер чтобы он был устойчив к падениям и работал сам по себе, без дополнительных настроек.
Ох кстати, уж не ваши ли машинки доставили мне анальную боль когда они оказывались достаточно сложными, чтобы не попасть под брутфорс или монте-карло, достаточно простыми, чтобы триггернуть вызов glpk, и достаточно сложными, чтобы его завесить нахуй? Там точно какие-то нехорошие люди специально заточенные под это машины начали сабмитить где-то в два по Москве, плюс-минус. Хорошо что у меня был второй монитор с открытым в нём таскменеджером.
Может быть часов через восемь Влад проснётся и расскажет как он сгенерил наши 72 машинки (которые мы не умеем решать вообще, но он генерил их от решения).
&gt; сделали бы 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;
}

daru

раскуроченная 19991 машина
А у нас к ней топливо было еще вчера вечером :grin:
Могу даже его код написать, кому интересно.
P.S. Видимо знаменитая машина, раз не мы одни обратили внимание

barbos

Если это ваша сложная машина, то я только что понял одну смешную вещь.
Я вносил посильный вклад в деятельность команды thiscodeismade. Утром обнаружилось, что все, на что у меня остается сил — это посмотреть какую-нибудь сложную машину, решить ее и отдать ботам на сабмиты новый паттерн топлива.
Я стал выбирать машину посложнее. Команда SzM на тот момент показалась мне очень интересной: ведь это похоже на "Стыдно за МГУ". Выбрал их машину 172714 и стал смотреть. Через некоторое время понял, что прямолинейное lp такое не решит, но можно сделать хитрый финт и генерировать топлива произвольным образом для такого класса машин. Сгенерировал штук шесть таких топлив и боты стали их прокручивать. Топлива порешили штук 50 - 60 новых машинок.
И вот теперь смешная часть: решая машины SzM мы немного ускорялись, видимо, немного замедляя SzM. В итоге разрыв в 34 очка и они нас не сделали :p

conv3rsje

Если это ваша сложная машина, то я только что понял одну смешную вещь.
Не, сложная она составлена из двух частей. Первая сделана глядя на 9748, немного усиленная только. Там решения вида 2^k, 2, 2^n. Но она элементарно подбирается любым LP методом или еще чем.
Вторая - 19991, простейшая машина с одним чамбером но с недиагональным решением (3 компоненты воздуха).
Сначала мы залили несколько первого вида и несколько второго. Оказалось что их все подобрали.
Поэтому последние 30 были сборками из этих двух. Их долго не подбирали, но сейчас в итоговом списке вижу что кто-то еще кроме нас их сделал (вы?).
ЗЫ Сложная - не в смысле "ппц какая сложная", а в смысле композиция :)

conv3rsje

Ох кстати, уж не ваши ли машинки доставили мне анальную боль когда они оказывались достаточно сложными, чтобы не попасть под брутфорс или монте-карло, достаточно простыми, чтобы триггернуть вызов glpk, и достаточно сложными, чтобы его завесить нахуй? Там точно какие-то нехорошие люди специально заточенные под это машины начали сабмитить где-то в два по Москве, плюс-минус. Хорошо что у меня был второй монитор с открытым в нём таскменеджером.
Может и мы, время подходит. Действительно, я поскольку почти асилил сделать решение через LP более ли менее начинал понимать какие машины на халяву им решаются, а какие - нет.
Мы "continuous integration" сделали практически только сегодня утром. До этого было как-то всё совсем на коленке и коряво. Но было уже достаточно поздно. Еще наверно мы слишком поздно начали заливать машины. Собственно мне честно говоря даже в голову не приходило что надо будет писать ботов заливающих.
Ну и полностью потеряли первый день из-за моей дибильной ошибки в интерпретации схемы гейтов/проводов.

conv3rsje

Видимо знаменитая машина, раз не мы одни обратили внимание
Она труъ!
Простая (один чамбер) и маленькая, но при этом сложная (некоммутативное умножение)

barbos

Действительно не того формата, без матриц. Я поторопился ответить, потому как впечатлился случайному, но приятному для нас совпадению. =)
На счет любого LP не уверен, потом подумаю. С LP-решением у меня были траблы, так как фабрика получалась большой, хотя метод построения фабрики давал не более 2N нод на последовательность длины N. Пришлось придумывать более экономное решение.

karkar

> http://github.com/cail/icfpc2010-tbd/
Уже как минимум две команды признались, что спи почерпнули инфу из этого открытого источника. Надо было придумать менее заметное название. :)
Оставить комментарий
Имя или ник:
Комментарий: