Chat:Ru/2022-01-08
PavRus: Привет. Подскажите пожалуйста. На главной недавно был тест на знание языка, с сертификатом. Где он сейчас?
inem: Я после сдачи не понял, написано, что я могу подтвердить в течении стольких-то дней. А что и где, ничего не понятно
Vlad100: У тебя тест пропал или сертификат?
aangairbender: iterative deepening играет не лучше, чем константный ply 7, странно
aangairbender: а мой tree of chambers иногда падает то ли с ошибкой, то ли с таймаутом (скорее последнее) и поэтому сложно адекватно сабмитнуть
aangairbender: в ide падений нету вообще:no_mouth:
YurkovAS: iterative deepening мою минимаксную версию тоже не сильно улучшил, хотя глубина стала заметно больше
YurkovAS: tree of chambers сильно помог? 200-е место было до этого
YurkovAS: я в итоге оставил мктс-ную версию, она немного лучше играет и делает перебор всех возможных ходов противников
aangairbender: YurkovAS у меня обычный maxN с оценочной кол-во клеток + кол-во соседей и глубиной (ply) константно 7 брал топ50
aangairbender: tree of chambers сейчас топ 70, но мне кажется там чего-то не хватает, еще надо посидеть над ним
YurkovAS: кол-во клеток: это 100% владение по воронову? кол-во соседей: это у текущей позиции или общее кол-во возможных ходов?
YurkovAS: у меня сейчас оценка такая: 1000 * (vorCountMy - vorCountOps) + countMovesMy
aangairbender: http://chat.codingame.com/pastebin/458457c0-c12f-4e9d-a2be-304489fbdedc
aangairbender: блин сообщение в пастебин засунуло
YurkovAS: может добавить уменьшение противника?
aangairbender: соседей имеется в виду свободных соседей
aangairbender: ну я пробовал еще учитывать противника, но не совсем примитивно, надо что-то получше
aangairbender: у меня сейчас решение предсказывает для каждого игрока предсказывает ход его смерти, вот я и пытался не свой максимизировать, а максимизировать свое итоговое место
YurkovAS: эх, просто у меня для всех расчитывает и в backpropagation противникам тоже проставляет баллы
aangairbender: у меня maxN так же для оппонентов работает как и для меня, только останавливается если в текущей ветке я умер
aangairbender: так что скор тоже считается для всех
aangairbender: с tree of chambers мне кажется стало лучше заполнять свою территорию
YurkovAS: ох, ну такое я не смогу запрогать
aangairbender: не стоило я думаю усилий, но ради интереса закодил)
aangairbender: мне нравится запускать моего бота с другими с настройкой (0,0)(29,19) получается честное противостояние
aangairbender: кстати и топ1 и топ2 бывают делают неоптимальные ходы, если уверены что победят)
YurkovAS: я в брутал тестере запускаю, но он зараза часто показывает 57%, хотя если перезапустить, то будет уже 48% а я сабмичу радостный
YurkovAS: 5 java ботов в топ20 - что они там такое придумали
YurkovAS: да и ниже много java и питон на 35месте
aangairbender: в google tron ai PM чел пишет, что намного важней оценочная функция, чем глубина
YurkovAS: js на 40м месте, нормально
aangairbender: я вот что думаю, бот каждый ход делает 2 возможных действия 1) заполняет текущую комнату по максимуму 2) бежит к границе вороного бороться за территорию так вот можно для 2ого действия запускать альфа бету для себя и того, с кем вороной граничит
aangairbender: или если есть несколько опоонентов в вороном, то просто циклом перебрать того, с кем будешь воевать)
aangairbender: или параноид конечно
YurkovAS: параноид тебе быстро сделать, у меня есть 42% vs mcts не сабмитил его
YurkovAS: с обычным вороновым
aangairbender: мне, првада, все еще кажется что с параноидом бот будет сильно зажиматься и для 3-4 игроков будет последние места занимать
YurkovAS: только я не проверял в нем альфабеты нормально, т.к. не увидил преимущества и получился полный перебор
aangairbender: а ты читал ПМ от гугл аи? там есть оценочная с коеффициентами подобранными нейронкой
YurkovAS: надо почитать, давно читал
aangairbender: я ею вдохновлялся когда свою придумывал. там k1 * (myN - oppN) + k2 * (myE - oppE)
aangairbender: где N, E - те самые мои nodes и edges
aangairbender: ну и k1, k2 он data mining-ом нашел
aangairbender: я кстати так код написал, что вся память статическая и из-за этого локально приходиться прагмой стек увеличивать)
aangairbender: на кг вроде норм, хз какой тут стек
YurkovAS: в плюсах достаточно объявить большой глобальный массив. он будет с мусором, потом из него по очереди используем данные ну и заполняем все поля (т.к. там мусор)
YurkovAS: стандарное резервирование памяти в приложении, не динамическое, поэтому работает очень быстро
aangairbender: я вообще не очень люблю глобальные переменные и из-за стиля кода и из-за подсказок в ide (оно ж предлагает все эти глобальные переменные) обычно я все алгоритмы пишу в классах (наверное можно заменить на namespace-ы) и там делаю просто поля массивы. Сами эти классы в main как локальные переменные обьявляю
aangairbender: в этот раз у меня тоже все в одном файле) хотя для корабликов даже сделал тулу чтоб мержить код в один файл, очень удобно
YurkovAS: у меня ide clion даже и не подсвечивает все эти глобальные массивы
aangairbender: замечаю, конечно, что трачу время на поиск нужного куска кода в большом файле, не круто
aangairbender: я в visual studio
aangairbender: еще плюс тулы, что она может подтягивать общие файлики типа
- include "../cglib/timer.h"
и можно иметь папочку cglib с общими файлами для всех контестов
YurkovAS: mcts - 750 строк minimax - 690 строк мне не мешает, т.к. уже привык, да и классов обычно 2-5шт
aangairbender: у меня сейчас 600 в tree of chambers
aangairbender: на топ50 было 380
aangairbender: maxN
YurkovAS: читал про это, у топов много общего кода и все разделено по файлам
YurkovAS: зато как приятно, когда гавнокод наваливает топам :)
PavRus: Привет. Подскажите пожалуйста. https://prnt.sc/26bg9l5 - это вот для рекрутеров или для разработчиков тоже? А то моего английского малость не хватает
ktotam: опять роскомнадзор что-то мутит? у меня codingame только с впн открывается
Uljahn: у меня пока без впн работает