Chat:Ru/2022-05-09
BorisZ: ну что блин за игра то, одна и та же версия может приземлится в произвольной позиции от 300 до 130
BorisZ: бессмыслено тестировать улучшения на арене получается
BorisZ: причем я это не сразу понял, типа подкручиваешь что-то, херак +50 мест, думаешь вот хорошо подкрутил)
BorisZ: а потом исправил жуткий баг, из-за которого половина вычислений была полной бессмыслицей и раз -100 мест
BorisZ: тут то штирлиц догадался
aropan: BorisZ: спасибо, не замечал этих вкладочек.
An.Petrovich: Ребят, а кто знает - время, которое указывают на лид-борде до перехода победивших бота в новую лигу - оно французское местное?
An.Petrovich: 2 BorisZ: я думаю это просто классическая "вычислительная неустойчивость" решения ))
BorisZ: время местное почти наверняка
BorisZ: да, понятно что был бы топовый бот, он бы поляну косил стабильно и примерно в одном районе приземлялся
BorisZ: как говорится - если ты удивляешься что ты не косишь поляну, ты и есть эта самая поляна )
BorisZ: ну или в покерном сленге - если не видишь лоха за столом, ты и есть лох (
An.Petrovich: ну типа того... ) у меня вчера тож самое было - исправил пару косяков, получил минус 100 мест )))
Uljahn: поэтому народ заводит бруталтестер и гоняет тысячи игр против выбранных соперников, чтобы статистику поточнее собрать
Uljahn: может, из-за этого и серваки не пашут как надо :thinking:
BorisZ: не, бруталтестер это против своих версий. который типа спунка, он по другому называется
Uljahn: а, cg benchmark
Uljahn: точн, перепутал
BorisZ: ага, он самый
BorisZ: я даже ставил его, но спунк был удобнее намного
BorisZ: тут надо было вручную искать айдишники, править конфиг, гемор
BorisZ: на этом контесте попробовал - он даже не завелся, выдает ошибку, я и забил, не стал разбираться
Uljahn: примечательно, как подобные тулзы усиливают расслоение участников, т.к. новичками не используются, а дают профит только самым опытным кодерам, которые могут рефери адаптировать и пофиксить ошибки
An.Petrovich: жостко О_о ) у меня, кстати, одна и та же версия стабильно те же очки набирает, но вот "исправления" - оно иной раз приводит к нетривиальному результату, эт да )))
Uljahn: эффект RPS
Uljahn: An.Petrovich: это ты про какую игру? гоночки или контестную?
An.Petrovich: гоночки, да
Uljahn: в гоночках ты в голде - там просто народа дофига, и рейтинг у них очень выровнен, флуктуация даёт +-сотни мест
Uljahn: хм, ты вроде в топе голды уже
An.Petrovich: да я так и понял, что когда народ плотно, то "исправления" оно мож теоретически и улучшает, но на практике из-за чуть другой тактики можно и "отъехать". Но если брать одинаковую версию (по хистори) и снова прогонять - то очки те же, и позиция вроде как тоже не заметил чтобы "уплывала". Да, я вчера на 2-ю строчку голды вышел, пока улучшал - откатился на пару сотен мест ))) и в следующую лигу не попал, ща откатил код, ждёмс...
Uljahn: а чего ждёшь? твой бот выше босса?
An.Petrovich: выше, он и вчера с этим кодом выше был, а вот с "улучшенными" версиями - сливал. В принципе до 10:38 UTC ещё времени полно поэкмпериментировать, мож займусь "улучшениями" )))
An.Petrovich: я просто вчера не понял - почему чувак с 1-ой позиции перешёл в легенду, а я со 2-ой (тоже прошедший бота) нет. Потом понял, что переход был, видимо, пока я тестил свои "улучшения"
An.Petrovich: поэтому сегодня про время и уточнял, чё они имеют ввиду под 12:38 pm
Uljahn: может у тебя игры не закончились к тому моменту?
Uljahn: переход в лигах бажный, иногда автоматом не переводит, нужно ресабмитить
An.Petrovich: ок, понятно
YurkovAS: Uljahn cg-bench уже давненько сломали (еще в прошлом контесте с мульти не работал): там ввели лимит на кол-во игр за период и в нем даже 100 игр уже не прогнать.
Uljahn: понятно
BorisZ: YurkovAS там и раньше вроде было ограничение, у бенчмарка в конфиге написано что 20 сек на игру, но если игр мало в батче то можно и меньше ставить
BorisZ: я скачал последнюю версию, там поменяли систему авторизации на КГ - раньше было по логин-паролю, чейчас по кукам
BorisZ: я вроде все по инструкции делал, но вылетает с ошибкой на этапе авторизации
YurkovAS: раньше я 100-200 игр нормально погонял в течении 1-2ч (давно было) а сейчас прям 10-50 и блокируют учетку, типа привышен лимит на кол-во игр, вот как в оптимизациях
BorisZ: ну это ограничение не бенчмарка а самого КГ
BorisZ: я в него упирался и руками запуская )
YurkovAS: да, сам КГ сделал ограничение т.е. из IDE так же все будет - много раз подряд не протестишь даже
BorisZ: хорошая идея была на форуме про платный аккаунт, чтобы тебе выделяли инстанс отдельный
BorisZ: много народу бы согласилось наверное, на время контеста уж точно
BorisZ: аренда же сейчас недорогая на амазонах всяких, а тут надо то одно ядро процессора, сколько-то там памяти и диска
YurkovAS: главное чтобы оплата прошла :smiley:
YurkovAS: еще запускаю из unit тестов самого рефери, когда нет в нем поддержки брутал-тестера
BorisZ: ну у них главный рынок то не россия в любом случае
YurkovAS: там есть возможность в много потоков запускать рефери и подсовывать ему своих агентов
BorisZ: и прямо ничего править не надо?
YurkovAS: а, ну открываю исходники в intellij idea, правлю да но там не много, копипастю и настраиваю доп параметры и готово
BorisZ: правда в последнем контесте против самого себя совсем мало смысла тестировать было - очень разные враги
YurkovAS: это да, частое явление
YurkovAS: http://chat.codingame.com/pastebin/46e6fecb-4693-456a-96c7-ffec6f0d4637
BorisZ: import com.codingame.gameengine.runner.MultiplayerGameRunner;
BorisZ: а вот этого то нет репозитарии
YurkovAS: import com.codingame.gameengine.runner.simulate.GameResult;
YurkovAS: прям из IDE позапускай этот юнит тест зеленая стрелочка у названия класса слева будет
YurkovAS: и потом через дебаггер запусти, поставь брейкпоинт и там будет видно что лежит в GameResult-е после завершения игры
BorisZ: сохранил чат, потом попробую, сейчас лень настаивать под джаву иде, спасибо )
An.Petrovich: чёт переход в следующую лигу в гоночках глючит неподецки... 3 часа назад засабмитил на арену код, набрал 45.23 балла, у бота 40.38. Пока ждал - гонял с ботом в IDE, в назначенное время меня никуда не перевели, 6:38 pm сменилось на 12:38 am. Уже второй раз прокатили, чяднт?
YurkovAS: если 12am это 12ч след дня, то проще еще ресабмитнуть
YurkovAS: на евристике в легу прошел :thumbsup:
An.Petrovich: а я правильно понимаю, что когда после сабмита игры заканчиваются, если бота обошёл - то сообщение о том что во столько-то переведут должно быть сразу? У меня оно не появляется, раньше вроде всегда предупреждали.
YurkovAS: да, там сразу же сообщение появляется слева свеху, после названия игры и названия лиги и запускается обратный отсчет, через сколько часов перейдешь дальше
An.Petrovich: хм... я уже 3 раза бота обходил в этой лиге и ни разу не получал этого сообщения...
An.Petrovich: перелогиниться шоль ))
YurkovAS: возможно, что-то сломалось и надо написать админам только я не знаю где это делают Uljahn может подсказать
Uljahn: угу, по идее коммьюнити менеджер ([CG]Thibaud) может вручную тебя перекинуть в легу, если промоушн не сработал, только он на неделю в отпуске без интернета
An.Petrovich: гыгыгы )) ну ладно, значит не судьба пока, будем подождать...
Uljahn: всей конторой свалили на какие-то офлайновые мероприятия, а модераторам отдуваться :unamused:
An.Petrovich: да пусть отдыхают, мне не горит )) просто пытаюсь понять, чё не так. Но раз эт просто глюки, то чё уж тут поделать, всякое бывает
An.Petrovich: я тут недавно, ещё не в курсе всех нюансов )
BorisZ: An.Petrovich если и вправду на ифах и геометрии прошел это конечно круто
BorisZ: но там дальше не встать высоко, даже до середины не добраться леги
An.Petrovich: там нейросети что-ли народ ваяет? )
BorisZ: в самом топе да
Uljahn: нейронки топ-4
Uljahn: ниже идут минимаксы и генетика
BorisZ: потом мктс и вариации, потом ГА и вариации - примерно так )
An.Petrovich: крутышы ) я в нейронках ноль, вообще без понятия как её тут обучать умудряются.
BorisZ: или на другое что-то переключаться, есть такие где можно на эвристиках в топ встать
Uljahn: обучают в офлайне локально, потом веса в код вставляют
Uljahn: у меня ифы, тригонометрия и простое предсказание движения для двух раннеров - 350-е место примерно
An.Petrovich: так и подумал
An.Petrovich: про оффлайн в смысле
An.Petrovich: у меня просто геометрия
Uljahn: могу статей накидать на инглише, как народ пилит нейронки для CG
An.Petrovich: на С++ есть? Или все на Питоне сидят?
Uljahn: на питоне как раз мало кто делает, большинство пилят с нуля на плюсах
An.Petrovich: буду благодарен если дашь линки, любопытно )
Uljahn: т.е. сами пилят фреймворки для обучения, ну а инференс уже бонусом
Uljahn: https://github.com/pb4git/Nash-DQN-CSB-Article
An.Petrovich: ну тут я так понимаю нужен эмулятор самого движка ещё, в принципе из правил понятно что он делант
An.Petrovich: *делает
Uljahn: обычну дают код рефери на джяве
Uljahn: *обычно
Uljahn: т.е. движок игры, который на сервере выполняется
BorisZ: не, эмулятор движка это как раз для остальных переборных подходов надо, это довольно простая часть
An.Petrovich: но я врядли буду так морочиться )) просто хотел в верхнюю лигу попробовать забраться, понятно что тут чтобы выйти в топы нужно не одну неделю заморачиваться... За статьи спасибо, почитаю!
BorisZ: для обучения вроде просто куча реплеев нужна
BorisZ: так ведь, Uljahn?
BorisZ: ну и куча всего еще, в чем простому смертному без боллитры не разобраться )
Uljahn: обучение на куче реплеев - это supervised learning
Uljahn: обучение на игре против себя - это reinforcement learning
Uljahn: во втором случае нужна сима
Uljahn: в первом случае нужно очень много качественных реплеев, во втором - реплеи генерируются автоматически
BorisZ: эх, наука умеет много гитик (
An.Petrovich: йеее! ))) я таки получил мессадж о переходе в след.лигу! Мож логаут/логин помог, а мож магия... 46.42 набрал при ботовских 40,32 ))
An.Petrovich: о, и часики затикали... 2:40:SS, значит ихние 12:38 am это 21:38 UTC, то есть час.пояс МСК, видать сайт видит системные настройки компа и под них время конвертит.