Chat:Ru/2022-05-09

From CG community
Jump to navigation Jump to search

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://www.codingame.com/playgrounds/58137/alphazero-like-implementation-for-oware-abapa-game-codingame/alphazero-like-implementation-for-oware-abapa-game

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, то есть час.пояс МСК, видать сайт видит системные настройки компа и под них время конвертит.