Chat:Ru/2021-04-09

From CG community
Jump to navigation Jump to search

ConstantBolzmann: кстати от себя скажу

ConstantBolzmann: я щас за ночь прошуршал тонну информации

ConstantBolzmann: по сути ту которую уже знаю

ConstantBolzmann: но со стороны явы

ConstantBolzmann: и я понял почему надо платить!

ConstantBolzmann: и безруких которые лезут учить я не знаю

ConstantBolzmann: банить по интернету надо

ConstantBolzmann: и я понял цену этим знаниям

ConstantBolzmann: я вот смотрю туториал

ConstantBolzmann: человек я понимаю по незнанию г----код показывает

ConstantBolzmann: но его просто опасно запускать!

ConstantBolzmann: это хорошо я знаю потомучто я на си пол пайплайна прошел

ConstantBolzmann: а зеленый человек на веру примет

ConstantBolzmann: и шуранет описание кейбиндов когда они уже в глфв есть

ConstantBolzmann: это ппц

ConstantBolzmann: и такое только на яве

ConstantBolzmann: я заметил

ConstantBolzmann: на крестах не было ни одного обзорщика такого

ConstantBolzmann: боль крестов выжигает г-код

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

ConstantBolzmann: только так

ConstantBolzmann: вот и всё я нашел решение

mabu: Ничего не понял, но звучит интересно.

Uljahn: Automaton2000: а ты понял?

Automaton2000: мне кажется это не так просто

ConstantBolzmann: да тут нечего понимать есть библиотека

ConstantBolzmann: библиотека чтото реализовала по сути большую часть того чего она покрыла

ConstantBolzmann: но желание написать велосипед

ConstantBolzmann: что уже написано

ConstantBolzmann: вот прям во фрейморке в проекте итак будет тысячи строк

ConstantBolzmann: нет надо велик написать да еще и кривой

miklla: да, определённо моя проблема исключительно в функции оценки в клоббере, бывает куча позиций, где моих фишек намного больше, чем вражеский, связи между ними выглядят соблазнительно, но они всё равно нулевые и им желательно иметь оценку 0

miklla: и их как раз роллаут хорошо оценивает

miklla: блин, а сложно тут оценку при думать

miklla: типичный пример:

miklla: представьте одномерную позицию в клоббере, сначала идут n>=2 моих фишек, затем сразу идут m>=2 фишек противника

miklla: с точки зрения любой обычной функции оценки значение этой позиции должно быть примерно пропорционально n-m

miklla: но на самом деле это нулевая позиция для любых n,m >=2

miklla: а роллаут это отлично видит

miklla: из-за этого альфа-бета думает, что попадёт в крутую позицию, а на самом деле нет

Uljahn: значение позиции? но там же очки не начисляют за съеденные фишки

Uljahn: суть игры - загонять противника в угол, кто последний - тот и Automaton2000

Automaton2000: тут как раз СА зайдёт

miklla: нулевой позицией по теории называется позиция, в которой какого бы игрока не был ход, то он проиграет

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

miklla: например 2 доминошки - нулевая позиция

miklla: или вышеописанная при m,n >= 2

miklla: но если бы было m=1

miklla: то позиция была бы хороша для первого игрока, и чем больше n, тем она строго лучше

miklla: что адекватно выражается функцией оценки

Uljahn: а, в зависимости от очереди хода?

miklla: да

miklla: если ты про нулёвость

miklla: а про позицию с m=1, она была бы хорошо в любом случае

Uljahn: тут, наверное, эффект горизонта (как у всех минимаксов), важен же факт победы, а не перевес по очкам, т.е. оценка может предпочесть позицию, которая в перспективе не ведёт к выигрышу

Uljahn: или ты про обрезку вариантов? если на доске независимы группы типа?

Uljahn: *независимые

magaiti: разве 2 фишки - нулевая позиция?

miklla: доминошка - нет, 2 доминошки - да

magaiti: а ок

miklla: любыптная там арифметика, да? :)

magaiti: не вникал

Uljahn: nim 2D?

magaiti: но теорему можно использовать для анализа позиции, и не трогать нулевые позиции

magaiti: в мктс

miklla: Uljahn ягадал, что значение одной доминошки = ним1, но существуют позиции не нулевые, не положительные, не отрицательные и не какой-либо ним :)

magaiti: просто убрать фишки нулевых позиций

miklla: для этого тебе придётся их обнаруживать

magaiti: только для одной позиции

magaiti: это не скажется на кол-ве роллаутов

miklla: а, ты только в корне собрался?

magaiti: да

miklla: ну это программа минимум

miklla: конечно усилит твою программу

miklla: но не на полную катушку

magaiti: у меня пока совсем минимум, чисто мктс в 300 строк

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

magaiti: можно попробовать, но как-нибудь потом. я пока Number Shifting грижу

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

miklla: и около корня выходить за рамки кеша

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

miklla: (на компонентах не очень большого размера)

miklla: проблема функции оценки естественно не только в нулевых позициях, но и в позициях, из которых враг может попасть в нулевую за один ход

miklla: у них, конечно, функция оценки не должна выдавать большое положительное число, но выдаёт иногда

vrabosh: sd = distance / (u*10/36*duration) sd = round(sd) if sd%1 > 0.99 else int(sd)

Как прально такое в питоне делать7

Uljahn: это ANEO?

vrabosh: https://www.codingame.com/training/medium/aneo - этот пазл решал, и там према была, что выдавало число n.99992213 и оно должно было быть пральное, но я сначало не замечал

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

Uljahn: думаю, порядок операций имеет значние из-за ошибки округления

Uljahn: x / (10/36) = x * (36/10)

vrabosh: sd = int((distance * 36) / (duration * u * 10)) - вотак сделал и заработало

Uljahn: угу

vrabosh: Uljahn как ты вспомнил, что это aneo, дыже наверно оч давно делал

Uljahn: тоже долго мучался с этим)

Uljahn: потом офигел, как просто пофиксить было

Uljahn: могу своё решение показать, надо?

vrabosh: давай

ConstantBolzmann: Uljahn

ConstantBolzmann: памаги

magaiti: в Number Shifting распараллелил поиск решений на 4 треда

magaiti: сейчас 96-й ищу, скоро 100

YurkovAS: magaiti a-star используешь?

magaiti: да

magaiti: параметризованная эвристика, перебираю параметры

magaiti: пока прокатывает

YurkovAS: с мктс-ом до 95 дошел и все. там в основном на рандомных доигрываниях решалось, по 20-30 ходов (вроде).

magaiti: я пока 95 тоже не прошел

magaiti: все значения парметра перебрал с таймаутом 10 секунд, придется увеличивать таймаут и перзапскать

magaiti: в крайнем случае придется колдовать с эвристикой

wlesavo: у меня там SA на питоне, с чем то типа полного перебора в эндгейме

wlesavo: первый пазл был за который более менее серьезно взялся

ConstantBolzmann: ребят подскажите

ConstantBolzmann: в интели джи создал проект прикрутил к нему лвгл

ConstantBolzmann: тестанул свою прогу топчик

ConstantBolzmann: стал из мейна делать ооп создавая новые классы

ConstantBolzmann: и кароче не видит мейн мои классы

ConstantBolzmann: импорт прописал

ConstantBolzmann: для теста пакет создал

ConstantBolzmann: нифига

ConstantBolzmann: https://imgur.com/a/wevJ7T1

ConstantBolzmann: помогите разобраться

735487: а ничего что функция main это точка входа приложения и она не должна быть внутри класса?

ConstantBolzmann: спасибо разобрался

ConstantBolzmann: мейн это точка входа

ConstantBolzmann: обьект

ConstantBolzmann: в яве это класс

ConstantBolzmann: у класса мейн

ConstantBolzmann: есть метод мейн точка входа!

ConstantBolzmann: который принимает параметры стринг

ConstantBolzmann: это ранабл класс

ConstantBolzmann: запускать можно как от класса

ConstantBolzmann: так и от конструктор или метода

ConstantBolzmann: просто тогда у мейна будет окружение

ConstantBolzmann: если написать конструктор

735487: стал из мейна делать ооп, вот эта фраза меня прямо смутила

ConstantBolzmann: ааа

ConstantBolzmann: просто я написал в мейне сначало

ConstantBolzmann: потом стал бить логику кода на части

ConstantBolzmann: вернее чтото в логику чтото в обработку

ConstantBolzmann: инициализация и прочее

ConstantBolzmann: я хочу работать программистом)

MadKnight: ConstantBolzmann го с нами в stellaris

Uljahn: в стелларис больно долго залипать

ConstantBolzmann: я качаю гладиатора

ConstantBolzmann: https://www.youtube.com/watch?v=ycF37ovhlo0

ConstantBolzmann: https://youtu.be/k6q3vg53Xrc