Chat:Ru/2020-09-06

From CG community
Jump to navigation Jump to search

Default avatar.png QuantumQQ: после золотой лиги еще что-то есть?

gsomix: QuantumQQ, легендарная. Она без босса.

Default avatar.png QuantumQQ: в гоночках 9ый сча, без щитов и без защитника, тупа на скорости и дрифте.

Default avatar.png QuantumQQ: дальше прямо кодить надо, лень:)

MadKnight: QuantumQQ я даже скорость не менял, чисто на дрифте и изменении координаты target вышел в легу

Default avatar.png QuantumQQ: Так я о том же, но дрифт у тебе похоже по лучше :))

MadKnight: QuantumQQ я ещё прикидываю возьму ли я чек если начну ехать к след чеку + я еду чуть вбок чтобы начать дрифтовать раньше

Default avatar.png QuantumQQ: сча щиты допишу, и попробую :))

MadKnight: мне ещё большой буст в ranks дало BOOST одной из машинок в первый ход

Default avatar.png QuantumQQ: это сразу сделал, иначе толкались друг с другом

Default avatar.png QuantumQQ: о! с щитами на 4ое пригнул, немного осталось :)

MadKnight: последние несколько мест - самые трудные

Default avatar.png QuantumQQ: посмотрел гонки на легендарном... это тут у нас детский сад штаны на лямках :)

vrabosh: как красиво константы обьявлять в питоне?

vrabosh: большие буквы мне чтото не нравятся.. с_dsfd тоже чтото не то..

vrabosh: ash_Move - может так? кточто_Чтоделать... если после подчера большая буква то это константа

BorisZ: не надо тратить мысленную энергию, есть пеп8, там сказано константы заглавными буквами, всем кто читает будет понятно что константа

BorisZ: и тебе самому в том числе

vrabosh: константа самый важный элемент в коде? когда ямотрю в код она первым делом бросается в глаза потомучто большая

BorisZ: не знаю, не возьмусь судить что важное (

vrabosh: пеп8 это лучее дизайнерское решение или это просто правила для программистов чтобы другим было удобней читать?

ilgiocatore: она должна бросаться в глаза, но не из-за того, что она "важнее", а чтобы визуально её отличить от других переменных

vrabosh: вот чита код и оно всегда бросается в глаза..

BorisZ: не думай говорю ж, есть гайдлайн, следуй ему и все, через пару дней привыкнешь, человек ко всему привыкает )

vrabosh: но отличить надо что это конст или нет. поэтмоу и думаю как лучше..

vrabosh: есть другие дизайнерские решеия кроме пеп8?

vrabosh: мне там не все нравится.. хотя я его досконально не изучил

vrabosh: а так половина что описывают они, я и до этого использовал.. сам пришел к этому

735487: лучше использовать что то стандартное потому что если пойдешь куда то работать то полюбому прийдется соблюдать принятые там гайдлайны

BorisZ: наверное есть, может быть в крпных конторах каких-то, хз, но думаю что процентов 95 - либо пеп8 либо что-то на его основе

vrabosh: когда работаешь на когото, непроблема их правила соблюдать.. там обучно тебе дают код.. и я делю так как до меня прогер делал без своего

vrabosh: работа это работа, творчество это творчетсво

BorisZ: просто когда его придумывали то тысячу умных людей сломали миллион копий и что-то родили, наверное у них есть основания для этого

BorisZ: надо использовать их работу, тем более говорю ж - через пару дней привыкнешь хоть к чему

BorisZ: у меня стоит автоворматирование в редакторе - black, он все делает по пеп8 сам, ну кроме имен, но там есть какие-то нюансы в переносах - не вникал даже

BorisZ: установил расширение - и все, оно само парится про пробелы, отступы и прочую фигню, не надо голову забивать

vrabosh: есть функция готовая в питоне фибоначи?

BorisZ: я не знаю, погугли, но вроде самому просто сделать массив заранее, да и быстрее наверное

BorisZ: там максимум вроде 30 яомби или около того на одной карте

vrabosh: как расчитвается координата где зомби будет на след ход?

vrabosh: а то я только знаю формулу расчета растаяния)

gsomix: vrabosh, а в чем вопрос?

> Each turn, every zombie will target the closest human, including Ash, and step 400 units towards them.

vrabosh: как узнать координата какая будет на след ход?

vrabosh: Есть точка A(x,y) и точка B(x,y) на ней лежит точка С(x,y) известно растояние между B и С как узнать C(x,y), точки А и Б известны

gsomix: vrabosh, прибавляй вектор направления до ближайшего человека помноженный на 400.

vrabosh: как эти векторы прибавлять?)

gsomix: Покомпонентно. :)

x += directionToHumanX*400 y += directionToHumanY*400

gsomix: Вектор направления должен быть единичным.

gsomix: *единичной длины

gsomix: Нужно только еще посмотреть, что там с округлениями.

vrabosh: я думаю не так просто

gsomix: vrabosh, подожди, если у тебя есть собственный вариант, то зачем спрашивать? :)

vrabosh: вот я на бумажки проделал, не работает.. не туда он станет

gsomix: Ты бы показал, что делал тогда.

vrabosh: А(0,0) Б(4,8) клеток на бумажке

vrabosh: растояние от А до Б - 5клеток.. по формуле которую я знаю, как растояние определять

vrabosh: значит путь от а до б = 5

vrabosh: упс тупанул..

vrabosh: или нет.. полуается 5 по икс прибавля, и по y тогда он будет в точки (5.5)

vrabosh: лан пойду сам разбиратся

gsomix: А причем здесь клетки? У тебя пространство непрерывное с евклидовым расстоянием.

gsomix: Плюс округления.

gsomix: Расстояние от точки А(0, 0) до Б(4, 8) равно 4*sqrt(5)/

gsomix: Блин, глупые смайлы. :)

gsomix: Такие вещи удобнее в дискорде.

ilgiocatore: sqrt((x1 - x2)^2 + (y1 - y2)^2)

vrabosh: gsomix как узнать чему равно направление хумана?

vrabosh: это его родные точки? х и y?

gsomix: vrabosh, вектор направления от зомби до человека?

gsomix: Если зомби в точке A(x1, y1), а человек в точке B(x2, y2), то направление:

D(x2 - x1 / distAB, y2 - y1 / distAB)

vrabosh: кароче надо геометрию смотреть.. до 9класса, а то я чувствую я не те вопросы здаю

gsomix: distAB -- расстояние от зомби до человека.

gsomix: В этом случае направление будет вектором единичной длины.

vrabosh: вот еслиб ты полностью формулу дал.. с перемеными.. что куда мне вставлять

gsomix: vrabosh, это непедагогично. :)

gsomix: Тут же цель научиться чем-нибудь. Да и других игр много, без векторов и непрерывного пространства.

ilgiocatore: чтобы посчитать следующую точку зомби вообще не нужно знать расстояние между зомби и человеком

ilgiocatore: ну точнее не нужно хранить это расстояние)

vrabosh: ilgiocatore можешь подсказать формулу?

YurkovAS: а что там с зомби? как не нужно знать расстояние

vrabosh: вот х,y чела известно, x,y зомби, он идет к чему на 400 единиц

vrabosh: посто чему след х и y будет равен и я понду дальше делать ГА)

vrabosh: а то придется на неделю уйти в геометрию

YurkovAS: он идет к ближайшему челу или к играку

gsomix: vrabosh, а ты куда-то торопишься? :)

gsomix: Возьми игру без геометрии и делай ГА.

vrabosh: какую? это вроде самая простая

vrabosh: в других задействованы другие игроки

ilgiocatore: http://chat.codingame.com/pastebin/2d669627-51b4-4f7b-9a3a-2ecc5f3bf0bd

vrabosh: ilgiocatore спасбо хороший человек)

vrabosh: интересно. а сократить эту формулу можно?)

BorisZ: только надо еще учесть, что если до человека меньше 400 точек, то зомби только до человека доходит

YurkovAS: можно - ни чего не делать)

BorisZ: дальше не проскакивает, надо проверять сначала расстояние

BorisZ: If the zombie is less than 400 units away, the human is killed and the zombie moves onto their coordinate.

gsomix: ilgiocatore, подожди, тебя сейчас еще код попросят написать. :)

ilgiocatore: gsomix да я просто объединил в одно сообщение то, что ты выше писал

vrabosh: определение растояние дорогоая штука

vrabosh: всетаки надо изучать геометрию, чтоб я мог оптимизацию делать

YurkovAS: для меня там сложная симуляция - до сих пор глючит иногда.

gsomix: vrabosh, для этого не надо изучать геометрию. Можно один раз посчитать расстояние от человека до зомби, а потом вычитать из него пройденное расстояние за ход.

gsomix: YurkovAS, округления?

YurkovAS: да, x, y, nx, ny глячат иногда в тестах. и при сабмите тоже падает (или убивают хз)

vrabosh: gsomix это да, но когда он за мной бежать будет.. тогда пересчет надо делать

gsomix: vrabosh, конечно.

gsomix: А, ну все равно определять ближайших. :)

gsomix: Можно какое-нибудь разбиение пространства сделать, если это имеет хоть какой-то смысл в этой задаче.

BorisZ: можно запоминать ближайшего хумана для каждого зомби, а потом сравнивать только до Эша расстояние

YurkovAS: BorisZ +, так же сделано

BorisZ: и пересчитывать только когда хуман умер

BorisZ: можно наверное доже все точки пути хранить до ближайшего

BorisZ: есть простор для оптимизаций короче)

gsomix: Угу, но я бы начал с бенчмарков. Это может быть не самым узкий местом. :)

gsomix: YurkovAS, BorisZ, а у вас ГА на этой задаче? Или какой-то другой алгоритм поиска?

BorisZ: если оптимизация простая то может быть быстрее ее запилить и сравнить - увеличилось количество сим или нет

BorisZ: у меня просто ГА, причем ничего не оптимизировано кроме кеша зомби-ближайший хуман

YurkovAS: gsomix у меня МС, с ГА на 8 ходов + 8 ходов евристикой было на 120к меньше.

YurkovAS: vrabosh игру попроще для ГА, можно еще эту глянуть https://www.codingame.com/ide/puzzle/search-race

YurkovAS: простой аналог гоночек. для меня было просто, но уже делал гоночки до этого по статья магуса и готовым стартерам.

735487: YurkovAS: ты когда перестанешь ЭА называть ГА ))

YurkovAS: а как ЭА расшифровывается?

735487: эволюционный алгоритм. это когда ты хранишь 1 лучший и его мутируешь

YurkovAS: спасибо

735487: ГА все таки чуток посложнее

YurkovAS: сейчас как раз экспериментирую с поколениями, в search-race. пока что хуже ЭА, но экспериментирую дальше.

735487: а я в серчрейс не могу научить залетать на всех порах на последний чек )) все время рулит к следующему типа ))

BorisZ: у мен есть подозрение что в ГА если непрерывное поле без препятствий, то скрещивание не дает профита никакого

YurkovAS: а, ну у меня есть похожее улучшение

BorisZ: по крайней мере в паре игр уже делал и мутации и скрещивание, потом мутации выкидывал, без них лучше была

BorisZ: может и пул тоже не нужен, достаточно одной хромосомы, то что amurushkin говорит что это ЭА

BorisZ: правильно я понял ведь amurushkin? ЭА - одна хромосома и только мутации?

YurkovAS: BorisZ а ты выводил все эти поколения? вывел и очень удивился.

735487: BorisZ: только не хромосома одна а кандидат один. хромосомы это же действия

vrabosh: а как называется когда я сенсоры настраиваю или логику какую придумываю и под нее уже подбираю коэфициенты?

BorisZ: YurkovAS финальный счет выводил, у каждого нового максимума - это делал

BorisZ: а точки все равно нечитаемы, чего их выводить )

BorisZ: там помню что меня удивило что решение почти всегда находится очень рано, допустив 20к сим, а максимум уже на 1 тыс, остальное в молоко

BorisZ: не всегда конечно, но очень часто

735487: попробуй делать больше мутаций

BorisZ: логично блин, как я сам не додумался )

BorisZ: как-то можно сделать переменное число, сначала по 1, потом если долго нет улучшений то увеличивать

vrabosh: а кстат, вы говорили про то, что можно без растояния к челу узнавать координат. как это? запишу сразу.. а то понял, это часто буду применять.

vrabosh: мне кажется тут формула попроще для питона будет.. этож я вначале узнал угол куда он идет, сохранил его и потом чтото перемножаю и получаю координаты. а угол то не изменяется пока не подойду к этому зомби., а сколько шагов ему до чела, я заранее вычислю

BorisZ: с переменным количеством мутаций с 260к до 350к поднялся, amurushkin - голова)

YurkovAS: :thumbsup:

YurkovAS: BorisZ у тебя на ограниченное кол-во ходов ГА?

735487: мне когда то это тоже подсказали ))

BorisZ: на 26 сейчас

YurkovAS: понял, спасибо!

BorisZ: прикинул что за столько 17 тест должен проходиться, где больше всего зомби

YurkovAS: в search-race все поколения становятся одинаковыми. добавление уникальности улучшает результат

YurkovAS: Hoard - да, за него можно набрать 287520 у меня в тестах набирает, а при сабмите нет

BorisZ: у меня 100 с копейками только (

YurkovAS: как-то разок при сабмите набрал 280к, но упал на другом. общий скор был 420к

YurkovAS: вот и думаю, что га должен быть лучше

BorisZ: медленная сима, давно писал, она на векторах, да и вобще много что можно улучшить сейчас

BorisZ: тоже стали тесты падать постоянно, с 1 мутацией всегда 100% было

vrabosh: блин, всетаки мне надо знать как по вектору вычислять координаты.. да и вообще поинмать как с векторами работать

BorisZ: для зомби не обязательно векторы, тут нет скорости и инерции, можно просто манипуляциями с точками

vrabosh: Ясенем лучше по направлению сходить на 1000 шагов, и потом координаты его вычислить

vrabosh: чем рандомно кидаться координатами.. или хз.. наверно разницы нет

BorisZ: кидали же формулу тут как посчитать если из а в б идешь но можешь за ход пройти только на расстояние фиксированное

vrabosh: два раза приходится считать

vrabosh: дорого

BorisZ: два раза что считать?

vrabosh: у меня есть коорд Ясеня 0,0 я хочу на 10 градусов вперед походить, на 1000 метров, как узнать координаты?

BorisZ: ну если через градусы то косинус это икс а синус это игрек

BorisZ: умноженное на длину

BorisZ: x = cos(10) * 1000; y = sin(10) * 1000

BorisZ: это если ты в качестве хода выбираешь именно угол и длину - полярные координаты то есть

vrabosh: да тебе в преподы надо идти, почему это не кто не говорит)

vrabosh: я с этими знаниями могу уже в гоночи идти)

BorisZ: у меня в качестве случайной цели просто точка в квадрате с центром где эш стоит

BorisZ: сторона квадрата = длина хода * 2

BorisZ: мне так проще показалось, но можешь попробовать и с углом

YurkovAS: http://chat.codingame.com/pastebin/996c4cf5-7abd-48b4-ba1d-60b4176d2d8f

vrabosh: хотя не сходится math.cos(45)*2.83, (2**2+2**2)**0.5 - вот проверил на теорем пифагора

vrabosh: ксинус должен давать 2 ответ

YurkovAS: надо градусы переводить в радианы

vrabosh: YurkovAS а почему ты не большими буквами константы обзываешь?) спасиб..

YurkovAS: да это же не важно, когда как их обзываю

vrabosh: просто недавно дискусировали, в пеп8 большими.. а я вот думаю как мне обзывать

YurkovAS: чем мне нравится КГ - можно гавнокодить как душе угодно :smile:

vrabosh: думаю первая буква мал_Большая

vrabosh: так точка в квадрате если по диагонали может уйти за приделы 1000

YurkovAS: http://chat.codingame.com/pastebin/cf7a830d-38d6-4f07-8a02-275dbad17457

vrabosh: мне надо координата от хумана которая будет через 1000 метров

vrabosh: а хатя чо я парюсь, для начало можно просто сделать

vrabosh: (+-500 or 0,+-500 or 0) и будет норм

YurkovAS: это когда по прямой идет, а когда под углом - то тебе выше написали 2 способа: через угол и синусы или нижний.

vrabosh: всетаки по углам лучше ходиь

vrabosh: если я хочу ити на 2.2 то atan2(2,2)?

YurkovAS: atan2(dy, dx)

vrabosh: math.cos(math.atan2(2,2))*2 - не получается коорд 2.2 я с 0.0 иду

YurkovAS: dy - разница и в том порядке, как писал

vrabosh: ну вот я стою на 0 и хочу на 45 градусов сходить 1000

vrabosh: что куда писать?

YurkovAS: http://chat.codingame.com/pastebin/996c4cf5-7abd-48b4-ba1d-60b4176d2d8f

YurkovAS: за место h - подставь 2, 2 за место z - 0, 0 ну и скорость поменяй

YurkovAS: ну все правильно получается у тебя было

vrabosh: получается 1.41

vrabosh: а все прально. эт я все с клеточками туплю)

YurkovAS: все правильно получается. по диагонали же идет, так и будет

YurkovAS: если бы в 2, 0 - тогда по х=2, по у=0 т.к. скорость 2 не нарушится

vrabosh: впринципе потом углы можно атановые спрятать в массив..

YurkovAS: через углы заметно медленнее работает.

vrabosh: хз, у меня сама функция dsqr в 2 раза дольше..

YurkovAS: да, не понятно, из твоего примера с 0,0 и 2, 2 и скоростью 2 ожидаешь что будет координата 1, 1

vrabosh: норм все делает.. 1.4 должна быть

YurkovAS: но нет, если сделать прамоугольный треугольник с а=1 и б=1, то гипотенуза будет корень из 2-х. т.е. растояние меньше 2-ки

vrabosh: я щаз от вас формулы эти поузнаю. мне потом геометрию будет легче изучать. она прикольней изучать когда уже чтото знаешь и попробовал на практике

YurkovAS: ага, тоже все не могу себя заставить разобраться

vrabosh: если у меня получется сделать через ГА, да чтоб он простовыигрывал, я буду оч рад

vrabosh: я потихоньку учу, начал с 6 класса, уже 7 прошел.. потом как нить начну 8 класс

vrabosh: но самое интересное я смотрю на 9 класс отложили

vrabosh: впринципе мне кажется, тут олимпиадники 8 классов могут уже тащить в легенду.

YurkovAS: тоже так думаю, что если знать хорошо школьную программу, то будет проще тут задачки решать. да и не только тут

vrabosh: а подругому както можно это число узнать math.atan2 , не задавая координат?

vrabosh: просто тупо по градусу.

YurkovAS: atan2 и определяет градус между точками

vrabosh: 0.78 - вот это число 45 градусов

YurkovAS: угол между точками

vrabosh: как узнать какое число 1 градус?

vrabosh: мне для косинуса синуса

vrabosh: яж там не могу 45 или 1 подставлять

YurkovAS: а, как перевести из градусов в радианы

vrabosh: щаз загуглю)

YurkovAS: радианы = градусы * ПИ / 180 градусы = радианы * 180 / ПИ

vrabosh: во нашел, щаз небольшими шажками и буду шарить

vrabosh: сколько вы раз пытаетешь особей сделать, чтобы найти того, кто хотябы выиграет?

vrabosh: либо я гдето ошибку сделал, но на 5к рандомно с ходом на 1000 метров, 35 ходов, не один не побеждает

YurkovAS: ох, у меня такой статистики нет. поставь на первый ход 1сек задержку

vrabosh: ты рандомно каждый ход генеришь?

vrabosh: точнее полностью рандомно или какието правила есть?

vrabosh: типа он должен рандомно двигатся но чуть в сторону зомби или еще как нить

YurkovAS: странно, проверил, на карте Hoard находит первый выйгрыш с 3-4 попытки

YurkovAS: у меня сделано так: выбираем рандомный ход (9 ходов: по 45 град и стоять на месте) и т.д. пока партия не закончится: либо убили всех людей или убили всех зомби

YurkovAS: а счет как в игре, сохраняем лучший к себе

gsomix: Школьные знания могут помочь только симуляцию написать. :)

gsomix: Этого совсем недостаточно для легенды.

vrabosh: там где 2 зомби уже находит чтото

vrabosh: попробуй там где 1 зомби

YurkovAS: в Simple с ~450 раза

vrabosh: ты полностью рандомно ходишь? не направляешь его?

YurkovAS: нет

YurkovAS: полностью рандомно

735487: vrabosh: ты лучшую последовательность запоминаешь? ее мутируешь?

YurkovAS: какие есть эффективные алгоритмы скрещиваний поколений?

vrabosh: норм, тупану чуть в коде..

vrabosh: я еще пока не мутиру.. симуляцию пишу и создаю особей.. пока смотрю а этот код и понимаю, что он оч медлено будет работать.

Uljahn: а зачем поколений, если ты можешь топ лучших особей из предыдущего забирать целиком?

vrabosh: надо хотябы как нить сделать. а то хочется и скорость и сделать) и получается непонять что

vrabosh: пока просто рандомные ходы делаю..

gsomix: Я бы сначала делал понятную версию, а потом быструю. :)

vrabosh: и те которые выигрывают или не проигрывают за 20ходов, то их потом плонирую скрещивать

Uljahn: мутировать проще

YurkovAS: Uljahn разве не надо их скрешивать + мутировать?

YurkovAS: если не скрещивать, тогда держать топ лучших и уникальных?

YurkovAS: щас проверю

Uljahn: зависит от стратегии селекции

YurkovAS: рандомная селекция

Uljahn: есть элитистская стратегия и турнирная, там вроде возможен перенос без изменения

YurkovAS: это скрещивания? или селекция такая?

Uljahn: селекция

YurkovAS: надо наверное еще почитать. а то как-то не очень в общем. но я в гонках пытаюсь ЭА обогнать. совсем небольшой прирост получился и то при 100 поколениях

Uljahn: минус переноса в том, что га может застрять в локальном оптимуме

YurkovAS: ну они очень быстро становятся одинаковыми. пришлось сделать уникальными по скору

vrabosh: ух ты 5к особей по 35 ходов делает..

735487: вроде бы обычно берут лучших. их часть мутируют а часть скрещивают. и нетронутых тоже оставляют. можно еще добавить часть рандомом. и из них опять выбирать лучших

BorisZ: YurkovAS чет мне кажется что 9 точек это радикально слишком, он у тебя получается ходит только по узлам сильно разряженной сетки

BorisZ: даже на пальцах можно прикинуть - надо попасть примерно в точку на расстоянии полтора хода, ты никак туда не шагнешь таким макаром

YurkovAS: BorisZ возможно. ну за 3 хода же?

BorisZ: может поздно будет уже )

735487: а сильно много действий есть шанс не найти решение

BorisZ: то есть какая-то часть хороших решений в принципе ненаходима тогда

YurkovAS: BorisZ 465к :thumbsup:

735487: YurkovAS: вот тебе еще новый вид мутации. добавляй к координатам +-число

735487: может покроет случаи о которых Борис говорит

YurkovAS: и скорости еще менять. еще раз потом поиграюсь с углами и скоростями

BorisZ: ему же можно в качестве цели вообще любую точку давать, хоть на другом конце поля

735487: какие скорости?

YurkovAS: скорость чела - стрелка.

735487: а там есть такое?

YurkovAS: да

YurkovAS: ну или не скорость, он же ходит на макс расстояние. можно короче пройти, там максимальное ограничение

Uljahn: Automaton2000: если скорость есть, то можно запилить -3Vel

Automaton2000: ну а что ты хочешь

gsomix: Automaton2000, если есть скорость, то можно проинтегрировать!

Automaton2000: вот с этого и надо было начинать

gsomix: Заметил интересный эффект. Чем больше читаю, как кто-то решает задачу, тем меньше хочется ее решать.

gsomix: Надо идти спать. Доброй ночи. :)

tutubalin: А если читаешь, как кто-то не может решить задачу?

gsomix: tutubalin, думаешь, эффект будет обратный? Нужно провести эксперимент. :upside_down:

vrabosh: ~10 - 15% выигрышных особей.. с них это гдето под 20 будет. с них можно чтото найти будет? тольковое?

vrabosh: это я пока на 2 зомби проверил

vrabosh: пока до полного рабочего сотояния даже без ГА доведу, чекнуть

vrabosh: 1% ошибся

BorisZ: vrabosh я бы на твоем месте не заморачивался с пока с ГА и с особями, надо симу отладить на простом случайном поиске или эволюционном как амурушкин говорил

vrabosh: что значит эволюционым?

735487: одно решение и его мутируешь рандомно

735487: оставляешь если получилось лучше

YurkovAS: BorisZ у тебя в ГА есть скрещивания и селекции по формулам (не рандом)?

vrabosh: а понял, т.е. свое решение делаю рандомно?

735487: еще раз в 50 итераций можно полный рандом еще добавлять

vrabosh: я пока хочу чистый рандом сделать

BorisZ: YurkovAS скрещивание есть, но я его отключил, с ним заметно хуже работает

vrabosh: потом когда буду ГА делать, одно решение свое буду кидать.. которое сейчас.

735487: чистый рандом не найдет. нужно лучшее решение пытаться еще улучшить тем же рандомом

vrabosh: и вот как раз свое решение буду улучшать другими хоть както рабочими

BorisZ: http://chat.codingame.com/pastebin/02a0e35e-cf5c-4889-88e2-9b4342353d93

BorisZ: примерно так эволюционный если я правильно понял

YurkovAS: BorisZ у меня тоже без скрешиваний стало лучше. селекция пока рандомная лучше.

vrabosh: тогда как вы обычным способом ищите?

Uljahn: что за обычный способ?

vrabosh: я вроде так делал, искал растояние аша до ближайшенго хумана + растояние шарера до ближайшего зомби.. и минимальное растояние и щел к этому зомби

Uljahn: я составлял список людей, которых точно успеваю спасти, и шёл к ближайшему, вроде

Uljahn: ещё читал, что лучше идти не к хуману, а к середине расстояния между ним и ближайшим зомби

vrabosh: ну вот у меня примерно также.. мы с тобой на одних местах

Uljahn: вообще, на питоне все эти MC, ГА и ЭА онлайн мало смысла имеют, не хватит времени для сходимости

vrabosh: может есть из стандартного, чтото получще?

vrabosh: да тут просто хотябы научитсья делать

vrabosh: если я на питоне не смогу сделать, то на Си подавно

Uljahn: на питоне может не найти ни одного решения, а на плюсах найдёт десяток

Uljahn: из-за разницы в производительности

Uljahn: так же и MCTS на питоне даёт очень неточные оценки, так как роллаутов мало

Uljahn: если хочешь учить, то лучше в офлайне

vrabosh: ну хотябы у себя на компе я могу провить

Uljahn: да

vrabosh: ну вот.. яж чисто чтобы изучить. сделать.. а там глядишь и мотивация появится на Си переписать

Uljahn: никто тебе не сможет запретить попробовать изучить или написать прогу :)

735487: BorisZ: примерно только только я например мутирую всегда лучший заново

BorisZ: amurushkin да, это я не правильно написал - надо bestSteps передавать всегда в функцию

vrabosh: вот я 50к вариантов запстил на 2 зомби у себя в оф, нашло 2к выигрышных... и не одного максимального по очкам.. либо возмжно я опять гдето тупанул с просчетами

735487: не надо искать наверное прямо до конца. ищи N глубину. у тебя каждый ход заново можно считать

BorisZ: YurkovAS а селекция у меня 1 лучшая + сколько-то случайных

tutubalin: vrabosh что значит ни одного максимального по очкам?

BorisZ: нашел лучшую, своп с 1 местом, хвост удалил

YurkovAS: BorisZ рандомно из top N лучших?

YurkovAS: только с 1 местом чтоли сравниваешь? а если в середину или любое другое место?

BorisZ: не то чтоб рандомно, какие будут на позициях с 2 и до отсечки такие и останутся

BorisZ: неправильно наверное это (

BorisZ: нагенерил пул, допустим 5 штук, потом добавил 5 мутаций каждой - получилось 10, потом посчитал, лучшую поставил в начало, последние 5 удалил

BorisZ: они там по ходу и будут висеть дофига времени, надо случайные брать или еще как-то хз

YurkovAS: о, у меня по другому беру одну их пула, мутирую и если норм, вставляю на новое место, остальные сдвигаю.

YurkovAS: ну в общем, прогресс есть, улучшил машинку.

YurkovAS: смог обогнать ЭА

vrabosh: идея пришла

vrabosh: можно вручную на тестах лучшие варианты раставить. и их уже рандомить для сабмина

vrabosh: т.е. +- вектора координаты не сильно менять.

vrabosh: tutubalin ну вот на вором тесте можно получить 50 очков, а мои рандомные ходы 20 получают

Uljahn: в офлайне?

vrabosh: da

Uljahn: у тебя полный рандом или дискретные ходы? времени сколько даёшь?

vrabosh: 500 те которые выигрвыают и еще 1500 которые не проиграли за 20ходов.

vrabosh: 50к особей на 20 ходов

vrabosh: надо будет сейча перевести это в игру, посмотреть как оно в реале выглядит

vrabosh: ух ты, даже тупо с глючным рандомом рейтинг поднялся чуть.

vrabosh: там где дофига зомби, он вообще успел сделать 40 особей по 20 ходов.

vrabosh: на питоне как я понял, надо разные гипотезы делать, а потом их еще поскрещивать и мутации добавить, тогда может чтото получится.. а на чистый рандом не везде можно расчитывать.