Сейчас я в двух словах опишу принцип действия нашего алгоритма, а потом мы перейдем к самому главному. Во имя науки! Автоматическое создание колод. насколько удачную колоду может собрать Hearthstone? Мы знаем, что составлять новые колоды для Hearthstone — увлекательное занятие для опытных игроков, которое приносит хорошие результаты. Но, может, вы новичок или давно не играли в Hearthstone? Или у вас мало времени? Или вы просто хотите получить совет, как собрать из ваших карт колоду, которой можно гордиться? Вам поможет новый автоконструктор: мы сделаем за вас основную часть работы и поможем скорее начать игру с популярной и эффективной колодой всего лишь после пары щелчков мышкой! Чтобы воспользоваться данной функцией, начните составлять колоду для стандартного формата и добавьте в нее любое количество карт. Затем нажмите «Завершить колоду» или «Готово», и мы дополним вашу колоду, изучив уже выбранные вами карты и использовав только доступные карты из вашей коллекции. Так, если вы выберете карты «Ундаста» и «Ложная смерть», а все остальное оставите на наше усмотрение, система примет во внимание несколько факторов и подготовит лучший (с ее точки зрения) вариант — например, популярную колоду охотника на предсмертных хрипах с Катреной Зимний Шорох. С технической точки зрения у нашего алгоритма два этапа, и у каждого из них несколько дополнительных уровней, которые помогут вам автоматически завершить колоду. Давайте подробно изучим, что именно делает каждый из них. Давайте сразу уточним, что мы имеем в виду под На первом этапе создания колоды (этап метаигры) мы пытаемся создать лучшую колоду, учитывая уже выбранные вами карты, доступные карты в вашей коллекции и популярные колоды метаигры. Для анализа текущей метаигры мы используем вычислительный алгоритм, распределяющий популярные колоды по категориям и подгруппам. Каждая подгруппа соответствует какому-либо типу колод в метаигре: «Охотник на секретах», «Жрец на драконах», «Нечетный паладин» и т. п. Конкретные списки колод в подгруппе могут немного различаться, но в общем и целом это один и тот же архетип. В машинном обучении это называется «кластерный анализ». Наш алгоритм кластерного анализа обрабатывает миллионы колод, каждая колода считается одной единицей данных, и каждая единица данных — это многомерный вектор. Используя данные кластерного анализа и разные математические решения, алгоритм динамически добавляет карты в список, пока колода не будет готова или не сработает этап «резервных вариантов». Поскольку у игроков с разным уровнем мастерства неизбежно отличаются списки колод, стиль игры и прочее, ваша личная метаигра также зависит от того, какой у вас рейтинг. Поэтому мы ввели дополнительные уровни для учета метаигры при составлении колоды. Если вы у вас 20-й ранг, предложенный вам состав колоды наверняка будет отличаться от того, что увидит игрок с рангом «Легенда». Кроме того, наша база данных непрерывно обновляется, чтобы ваша колода всегда соответствовала метаигре. Попытавшись составить эффективную колоду для текущей метаигры из добавленных вами карт и вашей коллекции, мы переходим к следующему этапу составления колоды. Если на этапе метаигры алгоритм не смог подобрать 30 Каждой карте присвоен определенный уровень силы, который зависит от выбранного класса, но не учитывает таких факторов, как взаимодействие с другими картами и возможность использования в комбинациях. Уровень силы не является константой и все время обновляется для вашей колоды с учетом разных условий. Есть три основных фактора, от которых зависит сила карт. При резервном заполнении мы подбираем для вашей колоды карты с максимальным уровнем силы. Говоря языком математики, сила карты — это функция, являющаяся суммой слагаемых, соответствующих ее вкладу в вероятность победы, и слагаемых, соответствующих различным штрафам. Подбирая каждую карту, мы ищем решение, которое максимизирует целевую функцию. Если вы несколько раз подряд попросите нас завершить список, не добавляя в него новых карт, мы постараемся каждый раз предлагать разные варианты. Эта функция не сработает, если изначально в вашем списке колоды нет ни одной карты. Что касается ограничений, в настоящее время автоконструктор работает только при составлении колод для стандартного формата, однако мы рассматриваем возможность в дальнейшем добавить поддержку и вольного формата. Кроме того, надо учитывать, что функция, которая предлагает один вариант замены при попытке создать колоду с картами, которых нет в вашей коллекции, пока не использует описанный выше новый алгоритм. До встречи в таверне!



Первый этап создания колоды: подстройка под метаигру

Второй этап создания колоды: резервные варианты






Беседа с разработчиками: автоконструктор колод
Разработчик Blizzard рассказывает, как устроен автоконструктор колод после обновления


















