

11.09.2018 22:38
0 23 6
Проблемы метода наименьших квадратов (least squares).

- How to find undervalued Hearthstone cards automatically
- Метод наименьших квадратов (wikipedia)
- Least Squares Fitting (Wolfram)
Вот так можно использовать этот метод в аркомаге:
Проблемы:
- Проблемы с нестандартными эффектами наподобие "играем снова". Например я давал вручную оценку таким эффектам (1-2 очка). Но вручную это делать как-то не очень.
- Как правильно давать оценку "сложным" картам? В Аркомаге есть два типа сложных карт: Первые это карты с условиями. Пример: "Если башня больше чем у врага, то 10 урона, иначе 5", т.е. у карты 2 возможных исхода, а не один. Вторые это эксплуатируемые карты. Пример: "-8 маны всем игрокам". Если у нас например 1 мана, а у противника 8 (не зависимо от каких-либо других карт), то карта сама по себе выгодна, т.к. почти весь "урон" по мане достаётся противнику, т.е. мы эксплуатируем карту в наших целях. У такой карты очень много различных исходов, но эксплуатируемые карты это тоже карты с условиями, но я добавил их в отдельную категорию. Вспомните например о карте вор - как можно максимировать её эффект?
Получается, что нужно делать оценку не карты такой какой она есть, а делать оценку либо для всех вариантов (через симуляцию), либо делать оценку динамичной (как и было сделанно), т.е. каждый ход смотрим на эффект, который сделает карта и оцениваем её - оправдывает ли она свою стоимость? - Комбинации из карт. В принципе всё очень просто: суммируем все эффекты. А дальше? - Ведь мы же делаем так: играем картой А, играет противник, мы играем картой Б. А и Б и есть наша комбинация из карт, т.е. противник играет между каждым ходом. Комбинация по сути наша тактика. Суммируем все эффекты - а потом делим на количество карт из комбинации? или делим на количество всех ходов? Или вообще не делим? Возможностей есть много разных. Вот появилась ещё одна мелкая сложность.
Wikipedia: Приближение с помощью кривых
И всё же - всё равно можно использовать. Неплохой метод, но только для поиска выгодных карт.
В следующей статье о картах я напишу о других методах оценки карт, направленных в других направлениях и их проблемных местах, и при каких случаях их нужно использовать. Вообщем, которые я буду использовать в своём коде.
Вообще для чего нужна оценка?
- Определить выгодность карты
- Определить, что может карта - лимит её действий. Имбоватая ли она? Или всегда такая "плохая"? Т.е. качество - мин/макс и значение на данный момент
- Оценить комбинацию из карт - какая более перспективная в плане нашей победы?
- Оценить и сравнить какие-то определённые эффекты
- Оценить игровое состояние или переходы между состояниями
Оценка это вроде как единая валюта для карт и игровых состояний.